---
Fuzzer filename: '/src/FreeRDP/libfreerdp/common/test/TestFuzzCommonAssistanceParseFileBuffer.c'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    parse_file_buffer
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/test/TestFuzzCommonAssistanceParseFileBuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - freerdp_assistance_file_free
        - freerdp_assistance_file_new
        - freerdp_assistance_parse_file_buffer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/test/TestFuzzCommonAssistanceParseFileBuffer.c:7,28'
          Dst:             freerdp_assistance_file_new
        - Src:             'libfreerdp/common/test/TestFuzzCommonAssistanceParseFileBuffer.c:11,14'
          Dst:             calloc
        - Src:             'libfreerdp/common/test/TestFuzzCommonAssistanceParseFileBuffer.c:17,11'
          Dst:             freerdp_assistance_parse_file_buffer
        - Src:             'libfreerdp/common/test/TestFuzzCommonAssistanceParseFileBuffer.c:21,2'
          Dst:             freerdp_assistance_file_free
    - functionName:    calloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    448
      BranchProfiles:  []
      Callsites:       []
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/test/TestFuzzCommonAssistanceParseFileBuffer.c'
      linkageType:     externalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - parse_file_buffer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/test/TestFuzzCommonAssistanceParseFileBuffer.c:29,2'
          Dst:             parse_file_buffer
    - functionName:    freerdp_assistance_parse_all_elements_of_l
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 695
      functionLinenumberEnd: 723
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          157
      EdgeCount:       39
      CyclomaticComplexity: 13
      functionsReached:
        - ArrayList_Append
        - append_address_to_list
        - freerdp_assistance_parse_attr
        - freerdp_assistance_parse_attr_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:701,7'
          Dst:             freerdp_assistance_parse_attr_uint32
        - Src:             'libfreerdp/common/assistance.c:703,7'
          Dst:             freerdp_assistance_parse_attr
        - Src:             'libfreerdp/common/assistance.c:705,7'
          Dst:             freerdp_assistance_parse_attr
        - Src:             'libfreerdp/common/assistance.c:710,8'
          Dst:             append_address_to_list
        - Src:             'libfreerdp/common/assistance.c:712,8'
          Dst:             ArrayList_Append
        - Src:             'libfreerdp/common/assistance.c:717,8'
          Dst:             append_address_to_list
        - Src:             'libfreerdp/common/assistance.c:719,8'
          Dst:             ArrayList_Append
    - functionName:    freerdp_assistance_parse_attr_uint32
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          134
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Print_dbg_tag
        - __errno_location
        - freerdp_assistance_parse_attr
        - strncpy
        - strtoul
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:500,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:503,7'
          Dst:             freerdp_assistance_parse_attr
        - Src:             'libfreerdp/common/assistance.c:509,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:514,3'
          Dst:             strncpy
        - Src:             'libfreerdp/common/assistance.c:516,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/assistance.c:517,22'
          Dst:             strtoul
        - Src:             'libfreerdp/common/assistance.c:519,7'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/assistance.c:521,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_assistance_parse_attr
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          250
      EdgeCount:       77
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_Print_dbg_tag
        - snprintf
        - strchr
        - strlen
        - strstr
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:424,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:425,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:426,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:434,17'
          Dst:             snprintf
        - Src:             'libfreerdp/common/assistance.c:435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:436,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:440,18'
          Dst:             strstr
        - Src:             'libfreerdp/common/assistance.c:444,7'
          Dst:             strlen
        - Src:             'libfreerdp/common/assistance.c:445,18'
          Dst:             strchr
        - Src:             'libfreerdp/common/assistance.c:449,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:456,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:462,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:462,24'
          Dst:             winpr_int_assert
    - functionName:    append_address_to_list
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ArrayList_Append
        - strndup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:258,10'
          Dst:             strndup
        - Src:             'libfreerdp/common/assistance.c:262,18'
          Dst:             ArrayList_Append
    - 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:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    snprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    293
      BranchProfiles:  []
      Callsites:       []
    - 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:    16
      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:    161
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    50
      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:    27
      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:    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:    30
      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:    246
      BranchProfiles:  []
      Callsites:       []
    - 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:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_assistance_parse_all_elements_of_t
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 727
      functionLinenumberEnd: 737
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_assistance_parse_all_elements_of
        - freerdp_assistance_parse_all_elements_of_l
        - freerdp_assistance_parse_attr_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:730,7'
          Dst:             freerdp_assistance_parse_attr_uint32
        - Src:             'libfreerdp/common/assistance.c:732,7'
          Dst:             freerdp_assistance_parse_attr_uint32
        - Src:             'libfreerdp/common/assistance.c:734,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:735,9'
          Dst:             freerdp_assistance_parse_all_elements_of
        - Src:             'libfreerdp/common/assistance.c:735,9'
          Dst:             freerdp_assistance_parse_all_elements_of_l
    - functionName:    freerdp_assistance_parse_all_elements_of
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          81
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_assistance_get_element
        - strnlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:677,9'
          Dst:             freerdp_assistance_get_element
        - Src:             'libfreerdp/common/assistance.c:680,9'
          Dst:             strnlen
    - functionName:    freerdp_assistance_get_element
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 647
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          191
      EdgeCount:       58
      CyclomaticComplexity: 7
      functionsReached:
        - freerdp_assistance_contains_element
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:648,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:649,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:650,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:651,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:656,14'
          Dst:             freerdp_assistance_contains_element
        - Src:             'libfreerdp/common/assistance.c:665,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:665,10'
          Dst:             winpr_int_assert
    - 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:    186
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_assistance_contains_element
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         185
      ICount:          675
      EdgeCount:       210
      CyclomaticComplexity: 27
      functionsReached:
        - WLog_Print_dbg_tag
        - snprintf
        - strnlen
        - strrstr
        - winpr_int_assert
        - winpr_strnstr
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/common/assistance.c:560,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:533,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:534,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:535,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:538,17'
          Dst:             snprintf
        - Src:             'libfreerdp/common/assistance.c:539,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:540,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:544,14'
          Dst:             winpr_strnstr
        - Src:             'libfreerdp/common/assistance.c:549,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:550,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:550,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:551,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:553,25'
          Dst:             strnlen
        - Src:             'libfreerdp/common/assistance.c:568,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:575,22'
          Dst:             winpr_strnstr
        - Src:             'libfreerdp/common/assistance.c:579,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:588,19'
          Dst:             snprintf
        - Src:             'libfreerdp/common/assistance.c:589,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:590,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:593,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:593,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:594,16'
          Dst:             strrstr
        - Src:             'libfreerdp/common/assistance.c:596,11'
          Dst:             strnlen
        - Src:             'libfreerdp/common/assistance.c:601,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:607,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:607,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:612,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:612,12'
          Dst:             winpr_int_assert
    - functionName:    strrstr
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - strstr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:86,19'
          Dst:             strstr
    - functionName:    freerdp_assistance_parse_all_elements_of_c
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_assistance_parse_all_elements_of
        - freerdp_assistance_parse_all_elements_of_t
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:742,9'
          Dst:             freerdp_assistance_parse_all_elements_of
        - Src:             'libfreerdp/common/assistance.c:742,9'
          Dst:             freerdp_assistance_parse_all_elements_of_t
    - functionName:    freerdp_assistance_parse_find_elements_of_c
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 748
      functionLinenumberEnd: 749
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_assistance_parse_all_elements_of
        - freerdp_assistance_parse_all_elements_of_c
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:749,9'
          Dst:             freerdp_assistance_parse_all_elements_of
        - Src:             'libfreerdp/common/assistance.c:749,9'
          Dst:             freerdp_assistance_parse_all_elements_of_c
    - functionName:    append_address
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          104
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ArrayList_Append
        - WLog_Print_dbg_tag
        - __errno_location
        - append_address_to_list
        - strlen
        - strtoul
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:271,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:273,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/assistance.c:274,20'
          Dst:             strtoul
        - Src:             'libfreerdp/common/assistance.c:276,7'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/assistance.c:278,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:283,67'
          Dst:             strlen
        - Src:             'libfreerdp/common/assistance.c:283,7'
          Dst:             append_address_to_list
        - Src:             'libfreerdp/common/assistance.c:285,9'
          Dst:             ArrayList_Append
    - functionName:    freerdp_assistance_parse_address_list
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          98
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - append_address
        - strchr
        - strtok_s
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:290,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:292,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:304,16'
          Dst:             strtok_s
        - Src:             'libfreerdp/common/assistance.c:309,16'
          Dst:             strchr
        - Src:             'libfreerdp/common/assistance.c:315,8'
          Dst:             append_address
        - Src:             'libfreerdp/common/assistance.c:318,11'
          Dst:             strtok_s
    - functionName:    update_connectionstring2_wchar
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          77
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertWCharNToUtf8Alloc
        - update_connectionstring2_nocopy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:174,10'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'libfreerdp/common/assistance.c:178,9'
          Dst:             update_connectionstring2_nocopy
    - functionName:    update_connectionstring2_nocopy
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          58
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:141,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_assistance_crypt_derive_key_sha1
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          129
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - winpr_Digest
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:236,24'
          Dst:             calloc
        - Src:             'libfreerdp/common/assistance.c:241,7'
          Dst:             winpr_Digest
        - Src:             'libfreerdp/common/assistance.c:244,7'
          Dst:             winpr_Digest
    - functionName:    update_option
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          91
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - strndup
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:101,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:109,9'
          Dst:             strndup
    - functionName:    freerdp_assistance_parse_connection_string1
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         47
      ICount:          257
      EdgeCount:       62
      CyclomaticComplexity: 17
      functionsReached:
        - _strdup
        - freerdp_assistance_parse_address_list
        - strcmp
        - strlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:330,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:339,14'
          Dst:             _strdup
        - Src:             'libfreerdp/common/assistance.c:345,25'
          Dst:             strlen
        - Src:             'libfreerdp/common/assistance.c:374,6'
          Dst:             strcmp
        - Src:             'libfreerdp/common/assistance.c:377,6'
          Dst:             strcmp
        - Src:             'libfreerdp/common/assistance.c:380,6'
          Dst:             strcmp
        - Src:             'libfreerdp/common/assistance.c:383,6'
          Dst:             strcmp
        - Src:             'libfreerdp/common/assistance.c:386,6'
          Dst:             strcmp
        - Src:             'libfreerdp/common/assistance.c:389,22'
          Dst:             _strdup
        - Src:             'libfreerdp/common/assistance.c:394,27'
          Dst:             _strdup
        - Src:             'libfreerdp/common/assistance.c:399,7'
          Dst:             freerdp_assistance_parse_address_list
    - 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:    98
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_assistance_decrypt2
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 936
      functionLinenumberEnd: 1026
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          209
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - WLog_Print_dbg_tag
        - calloc
        - freerdp_assistance_crypt_derive_key_sha1
        - freerdp_assistance_parse_connection_string2
        - update_connectionstring2_wchar
        - winpr_Cipher_Final
        - winpr_Cipher_Free
        - winpr_Cipher_NewEx
        - winpr_Cipher_Update
        - winpr_Digest
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:952,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:957,14'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/common/assistance.c:960,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:966,7'
          Dst:             winpr_Digest
        - Src:             'libfreerdp/common/assistance.c:970,7'
          Dst:             freerdp_assistance_crypt_derive_key_sha1
        - Src:             'libfreerdp/common/assistance.c:975,6'
          Dst:             winpr_Cipher_NewEx
        - Src:             'libfreerdp/common/assistance.c:984,17'
          Dst:             calloc
        - Src:             'libfreerdp/common/assistance.c:989,7'
          Dst:             winpr_Cipher_Update
        - Src:             'libfreerdp/common/assistance.c:992,7'
          Dst:             winpr_Cipher_Final
        - Src:             'libfreerdp/common/assistance.c:994,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:1010,7'
          Dst:             update_connectionstring2_wchar
        - Src:             'libfreerdp/common/assistance.c:1012,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:1016,7'
          Dst:             freerdp_assistance_parse_connection_string2
        - Src:             'libfreerdp/common/assistance.c:1021,2'
          Dst:             winpr_Cipher_Free
        - Src:             'libfreerdp/common/assistance.c:1024,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_assistance_parse_connection_string2
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 754
      functionLinenumberEnd: 806
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          174
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - _strdup
        - freerdp_assistance_consume_input_and_get_element
        - freerdp_assistance_get_element
        - freerdp_assistance_parse_attr_str
        - freerdp_assistance_parse_find_elements_of_c
        - strlen
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:757,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:762,14'
          Dst:             _strdup
        - Src:             'libfreerdp/common/assistance.c:765,22'
          Dst:             strlen
        - Src:             'libfreerdp/common/assistance.c:770,8'
          Dst:             freerdp_assistance_consume_input_and_get_element
        - Src:             'libfreerdp/common/assistance.c:778,9'
          Dst:             freerdp_assistance_get_element
        - Src:             'libfreerdp/common/assistance.c:784,9'
          Dst:             freerdp_assistance_parse_find_elements_of_c
        - Src:             'libfreerdp/common/assistance.c:792,9'
          Dst:             freerdp_assistance_parse_attr_str
        - Src:             'libfreerdp/common/assistance.c:795,9'
          Dst:             freerdp_assistance_parse_attr_str
        - Src:             'libfreerdp/common/assistance.c:798,9'
          Dst:             freerdp_assistance_parse_attr_str
    - functionName:    freerdp_assistance_consume_input_and_get_element
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 643
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          112
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_assistance_contains_element
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:625,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:626,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:627,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:628,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:633,14'
          Dst:             freerdp_assistance_contains_element
    - functionName:    freerdp_assistance_parse_attr_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 470
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_assistance_parse_attr
        - update_option
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:473,7'
          Dst:             freerdp_assistance_parse_attr
        - Src:             'libfreerdp/common/assistance.c:475,9'
          Dst:             update_option
    - functionName:    freerdp_assistance_parse_attr_bool
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 493
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_assistance_parse_attr
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:483,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:486,7'
          Dst:             freerdp_assistance_parse_attr
    - functionName:    freerdp_assistance_parse_uploadinfo
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1055
      functionLinenumberEnd: 1174
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          351
      EdgeCount:       76
      CyclomaticComplexity: 22
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_assistance_consume_input_and_get_element
        - freerdp_assistance_decrypt2
        - freerdp_assistance_encrypt_pass_stub
        - freerdp_assistance_hex_string_to_bin
        - freerdp_assistance_parse_attr
        - freerdp_assistance_parse_attr_bool
        - freerdp_assistance_parse_attr_str
        - freerdp_assistance_parse_attr_uint32
        - freerdp_assistance_parse_connection_string1
        - strlen
        - strncmp
        - strnlen
        - strstr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/common/assistance.c:1138,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:1064,22'
          Dst:             strnlen
        - Src:             'libfreerdp/common/assistance.c:1067,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:1071,7'
          Dst:             freerdp_assistance_parse_attr
        - Src:             'libfreerdp/common/assistance.c:1074,30'
          Dst:             strncmp
        - Src:             'libfreerdp/common/assistance.c:1076,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:1085,7'
          Dst:             freerdp_assistance_consume_input_and_get_element
        - Src:             'libfreerdp/common/assistance.c:1090,7'
          Dst:             freerdp_assistance_parse_attr_str
        - Src:             'libfreerdp/common/assistance.c:1094,7'
          Dst:             freerdp_assistance_parse_attr_str
        - Src:             'libfreerdp/common/assistance.c:1098,7'
          Dst:             freerdp_assistance_parse_attr_str
        - Src:             'libfreerdp/common/assistance.c:1102,7'
          Dst:             freerdp_assistance_parse_attr_bool
        - Src:             'libfreerdp/common/assistance.c:1107,7'
          Dst:             freerdp_assistance_parse_attr_str
        - Src:             'libfreerdp/common/assistance.c:1113,19'
          Dst:             strstr
        - Src:             'libfreerdp/common/assistance.c:1117,23'
          Dst:             strlen
        - Src:             'libfreerdp/common/assistance.c:1119,14'
          Dst:             strstr
        - Src:             'libfreerdp/common/assistance.c:1124,7'
          Dst:             freerdp_assistance_parse_attr_uint32
        - Src:             'libfreerdp/common/assistance.c:1128,7'
          Dst:             freerdp_assistance_parse_attr_uint32
        - Src:             'libfreerdp/common/assistance.c:1132,7'
          Dst:             freerdp_assistance_parse_attr_bool
        - Src:             'libfreerdp/common/assistance.c:1142,30'
          Dst:             freerdp_assistance_hex_string_to_bin
        - Src:             'libfreerdp/common/assistance.c:1145,9'
          Dst:             freerdp_assistance_decrypt2
        - Src:             'libfreerdp/common/assistance.c:1152,9'
          Dst:             freerdp_assistance_parse_connection_string1
        - Src:             'libfreerdp/common/assistance.c:1163,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:1167,28'
          Dst:             freerdp_assistance_encrypt_pass_stub
    - 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:    30
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_assistance_hex_string_to_bin
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1046
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          79
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - strlen
        - winpr_HexStringToBinBuffer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:1034,24'
          Dst:             strlen
        - Src:             'libfreerdp/common/assistance.c:1035,11'
          Dst:             calloc
        - Src:             'libfreerdp/common/assistance.c:1038,20'
          Dst:             winpr_HexStringToBinBuffer
    - functionName:    freerdp_assistance_encrypt_pass_stub
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 875
      functionLinenumberEnd: 932
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          177
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - WLog_Print_dbg_tag
        - calloc
        - winpr_Data_Write_UINT32
        - winpr_Digest
        - winpr_RC4_Free
        - winpr_RC4_New
        - winpr_RC4_Update
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:884,21'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/common/assistance.c:885,21'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/common/assistance.c:894,7'
          Dst:             winpr_Digest
        - Src:             'libfreerdp/common/assistance.c:898,16'
          Dst:             calloc
        - Src:             'libfreerdp/common/assistance.c:899,17'
          Dst:             calloc
        - Src:             'libfreerdp/common/assistance.c:904,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:905,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'libfreerdp/common/assistance.c:907,11'
          Dst:             winpr_RC4_New
        - Src:             'libfreerdp/common/assistance.c:911,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:915,7'
          Dst:             winpr_RC4_Update
        - Src:             'libfreerdp/common/assistance.c:919,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:924,2'
          Dst:             winpr_RC4_Free
    - 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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:236,3'
          Dst:             winpr_int_assert
    - functionName:    freerdp_assistance_set_connection_string2
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1514
      functionLinenumberEnd: 1527
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          83
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - _strdup
        - freerdp_assistance_parse_connection_string2
        - update_connectionstring2_nocopy
        - update_password
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:1518,14'
          Dst:             _strdup
        - Src:             'libfreerdp/common/assistance.c:1522,7'
          Dst:             update_connectionstring2_nocopy
        - Src:             'libfreerdp/common/assistance.c:1524,7'
          Dst:             update_password
        - Src:             'libfreerdp/common/assistance.c:1526,9'
          Dst:             freerdp_assistance_parse_connection_string2
    - functionName:    update_password
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          59
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - _strdup
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:130,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:135,19'
          Dst:             _strdup
    - functionName:    freerdp_assistance_get_encrypted_pass_stub
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1503
      functionLinenumberEnd: 1510
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_assistance_print_file
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1461
      functionLinenumberEnd: 1499
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         123
      ICount:          456
      EdgeCount:       140
      CyclomaticComplexity: 19
      functionsReached:
        - ArrayList_Count
        - ArrayList_GetItem
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:1462,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:1464,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/assistance.c:1464,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/assistance.c:1465,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/assistance.c:1465,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/assistance.c:1466,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/assistance.c:1466,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/assistance.c:1467,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/assistance.c:1467,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/assistance.c:1468,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/assistance.c:1468,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/assistance.c:1469,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/assistance.c:1469,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/assistance.c:1470,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/assistance.c:1470,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/assistance.c:1471,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/assistance.c:1471,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/assistance.c:1472,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/assistance.c:1472,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/assistance.c:1473,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/assistance.c:1473,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/assistance.c:1474,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/assistance.c:1474,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/assistance.c:1476,25'
          Dst:             ArrayList_Count
        - Src:             'libfreerdp/common/assistance.c:1480,22'
          Dst:             ArrayList_GetItem
        - Src:             'libfreerdp/common/assistance.c:1481,11'
          Dst:             ArrayList_Count
        - Src:             'libfreerdp/common/assistance.c:1488,15'
          Dst:             ArrayList_GetItem
        - Src:             'libfreerdp/common/assistance.c:1489,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:1492,11'
          Dst:             ArrayList_Count
        - Src:             'libfreerdp/common/assistance.c:1493,10'
          Dst:             ArrayList_GetItem
        - Src:             'libfreerdp/common/assistance.c:1495,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/assistance.c:1495,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/assistance.c:1496,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/assistance.c:1496,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/assistance.c:1497,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/assistance.c:1497,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    update_connectionstring2
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          77
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - strndup
        - update_connectionstring2_nocopy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:158,10'
          Dst:             strndup
        - Src:             'libfreerdp/common/assistance.c:162,9'
          Dst:             update_connectionstring2_nocopy
    - functionName:    freerdp_assistance_file_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1436
      functionLinenumberEnd: 1458
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          86
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ArrayList_Free
        - update_connectionstring2
        - update_password
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:1440,2'
          Dst:             update_password
        - Src:             'libfreerdp/common/assistance.c:1441,2'
          Dst:             update_connectionstring2
        - Src:             'libfreerdp/common/assistance.c:1454,2'
          Dst:             ArrayList_Free
        - Src:             'libfreerdp/common/assistance.c:1455,2'
          Dst:             ArrayList_Free
        - Src:             'libfreerdp/common/assistance.c:1456,2'
          Dst:             ArrayList_Free
    - functionName:    setup_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1395
      functionLinenumberEnd: 1404
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          47
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - ArrayList_Object
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:1396,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:1398,17'
          Dst:             ArrayList_Object
    - functionName:    freerdp_assistance_file_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1407
      functionLinenumberEnd: 1433
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         21
      ICount:          106
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - ArrayList_New
        - calloc
        - freerdp_assistance_file_free
        - setup_string
        - winpr_InitializeSSL
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:1408,7'
          Dst:             winpr_InitializeSSL
        - Src:             'libfreerdp/common/assistance.c:1411,28'
          Dst:             calloc
        - Src:             'libfreerdp/common/assistance.c:1415,27'
          Dst:             ArrayList_New
        - Src:             'libfreerdp/common/assistance.c:1416,23'
          Dst:             ArrayList_New
        - Src:             'libfreerdp/common/assistance.c:1417,22'
          Dst:             ArrayList_New
        - Src:             'libfreerdp/common/assistance.c:1422,7'
          Dst:             setup_string
        - Src:             'libfreerdp/common/assistance.c:1422,48'
          Dst:             setup_string
        - Src:             'libfreerdp/common/assistance.c:1430,2'
          Dst:             freerdp_assistance_file_free
    - functionName:    freerdp_assistance_populate_settings_from_assistance_file
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1303
      functionLinenumberEnd: 1392
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         72
      ICount:          379
      EdgeCount:       96
      CyclomaticComplexity: 26
      functionsReached:
        - ArrayList_Count
        - ArrayList_GetItem
        - freerdp_settings_set_bool
        - freerdp_settings_set_pointer_array
        - freerdp_settings_set_string
        - freerdp_settings_set_uint32
        - freerdp_target_net_adresses_reset
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:1304,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/assistance.c:1310,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/common/assistance.c:1316,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/common/assistance.c:1322,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/common/assistance.c:1329,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/common/assistance.c:1334,6'
          Dst:             ArrayList_Count
        - Src:             'libfreerdp/common/assistance.c:1337,21'
          Dst:             ArrayList_GetItem
        - Src:             'libfreerdp/common/assistance.c:1338,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/common/assistance.c:1341,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/common/assistance.c:1344,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/common/assistance.c:1349,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/common/assistance.c:1353,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/assistance.c:1356,23'
          Dst:             ArrayList_Count
        - Src:             'libfreerdp/common/assistance.c:1357,27'
          Dst:             ArrayList_Count
        - Src:             'libfreerdp/common/assistance.c:1368,13'
          Dst:             ArrayList_GetItem
        - Src:             'libfreerdp/common/assistance.c:1369,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:1370,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/assistance.c:1373,7'
          Dst:             freerdp_target_net_adresses_reset
        - Src:             'libfreerdp/common/assistance.c:1378,14'
          Dst:             ArrayList_GetItem
        - Src:             'libfreerdp/common/assistance.c:1379,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:1381,8'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/common/assistance.c:1386,23'
          Dst:             ArrayList_GetItem
        - Src:             'libfreerdp/common/assistance.c:1387,8'
          Dst:             freerdp_settings_set_pointer_array
    - 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:    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:    13
      BranchProfiles:  []
      Callsites:       []
    - 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:    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:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          58
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - _strdup
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:115,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:119,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:124,19'
          Dst:             _strdup
    - functionName:    freerdp_assistance_parse_file
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1239
      functionLinenumberEnd: 1299
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          158
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_Print_dbg_tag
        - _fseeki64
        - _ftelli64
        - fclose
        - ferror
        - fread
        - freerdp_assistance_parse_file_buffer
        - update_name
        - winpr_fopen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:1249,7'
          Dst:             update_name
        - Src:             'libfreerdp/common/assistance.c:1252,13'
          Dst:             winpr_fopen
        - Src:             'libfreerdp/common/assistance.c:1256,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:1260,6'
          Dst:             _fseeki64
        - Src:             'libfreerdp/common/assistance.c:1262,17'
          Dst:             _ftelli64
        - Src:             'libfreerdp/common/assistance.c:1263,6'
          Dst:             _fseeki64
        - Src:             'libfreerdp/common/assistance.c:1268,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:1277,13'
          Dst:             fread
        - Src:             'libfreerdp/common/assistance.c:1281,8'
          Dst:             ferror
        - Src:             'libfreerdp/common/assistance.c:1287,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:1293,11'
          Dst:             freerdp_assistance_parse_file_buffer
        - Src:             'libfreerdp/common/assistance.c:1296,8'
          Dst:             fclose
    - functionName:    fread
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    28
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ferror
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_assistance_parse_file_buffer
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1211
      functionLinenumberEnd: 1236
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          113
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_assistance_parse_file_buffer_int
        - strndup
        - strnlen
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:1212,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:1215,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:1220,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:1225,18'
          Dst:             strndup
        - Src:             'libfreerdp/common/assistance.c:1226,21'
          Dst:             strnlen
        - Src:             'libfreerdp/common/assistance.c:1228,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:1233,17'
          Dst:             freerdp_assistance_parse_file_buffer_int
    - 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:    28
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_assistance_parse_file_buffer_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1178
      functionLinenumberEnd: 1207
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          140
      EdgeCount:       41
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_assistance_consume_input_and_get_element
        - freerdp_assistance_contains_element
        - freerdp_assistance_parse_connection_string2
        - freerdp_assistance_parse_uploadinfo
        - update_connectionstring2
        - update_password
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:1179,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:1180,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:1181,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/assistance.c:1183,7'
          Dst:             update_password
        - Src:             'libfreerdp/common/assistance.c:1188,6'
          Dst:             freerdp_assistance_consume_input_and_get_element
        - Src:             'libfreerdp/common/assistance.c:1190,10'
          Dst:             freerdp_assistance_parse_uploadinfo
        - Src:             'libfreerdp/common/assistance.c:1194,6'
          Dst:             freerdp_assistance_contains_element
        - Src:             'libfreerdp/common/assistance.c:1197,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/assistance.c:1200,7'
          Dst:             update_connectionstring2
        - Src:             'libfreerdp/common/assistance.c:1203,7'
          Dst:             freerdp_assistance_parse_connection_string2
    - functionName:    freerdp_assistance_bin_to_hex_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1049
      functionLinenumberEnd: 1050
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_BinToHexString
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:1050,9'
          Dst:             winpr_BinToHexString
    - functionName:    freerdp_assistance_generate_pass_stub
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 827
      functionLinenumberEnd: 871
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          127
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - winpr_RAND
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:840,19'
          Dst:             calloc
        - Src:             'libfreerdp/common/assistance.c:856,6'
          Dst:             winpr_RAND
    - functionName:    freerdp_assistance_construct_expert_blob
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/assistance.c'
      linkageType:     InternalLinkage
      functionLinenumber: 809
      functionLinenumberEnd: 824
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          74
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/assistance.c:813,28'
          Dst:             strlen
        - Src:             'libfreerdp/common/assistance.c:814,28'
          Dst:             strlen
        - Src:             'libfreerdp/common/assistance.c:816,28'
          Dst:             calloc
        - Src:             'libfreerdp/common/assistance.c:821,8'
          Dst:             snprintf
    - functionName:    settings_reg_query_word_val
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - settings_reg_query_dword_val
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:147,7'
          Dst:             settings_reg_query_dword_val
    - functionName:    settings_reg_query_dword_val
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - RegQueryValueExA
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:135,6'
          Dst:             RegQueryValueExA
    - functionName:    settings_reg_query_bool_val
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - settings_reg_query_dword_val
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:161,7'
          Dst:             settings_reg_query_dword_val
    - functionName:    settings_reg_query_dword
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_set_uint32
        - settings_reg_query_dword_val
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:172,7'
          Dst:             settings_reg_query_dword_val
        - Src:             'libfreerdp/core/settings.c:175,9'
          Dst:             freerdp_settings_set_uint32
    - functionName:    settings_reg_query_bool
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_set_bool
        - settings_reg_query_dword_val
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:183,7'
          Dst:             settings_reg_query_dword_val
        - Src:             'libfreerdp/core/settings.c:186,9'
          Dst:             freerdp_settings_set_bool
    - functionName:    settings_client_load_hkey_local_machine
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         52
      ICount:          374
      EdgeCount:       68
      CyclomaticComplexity: 18
      functionsReached:
        - RegCloseKey
        - RegOpenKeyExA
        - WLog_Print_dbg_tag
        - freerdp_getApplicatonDetailsRegKey
        - freerdp_settings_set_pointer_array
        - freerdp_settings_set_uint32
        - settings_reg_query_bool
        - settings_reg_query_bool_val
        - settings_reg_query_dword
        - settings_reg_query_dword_val
        - settings_reg_query_word_val
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:192,15'
          Dst:             freerdp_getApplicatonDetailsRegKey
        - Src:             'libfreerdp/core/settings.c:197,8'
          Dst:             RegOpenKeyExA
        - Src:             'libfreerdp/core/settings.c:202,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:203,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:205,5'
          Dst:             settings_reg_query_bool
        - Src:             'libfreerdp/core/settings.c:206,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:207,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:208,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:210,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:212,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:214,5'
          Dst:             settings_reg_query_bool
        - Src:             'libfreerdp/core/settings.c:215,5'
          Dst:             settings_reg_query_bool
        - Src:             'libfreerdp/core/settings.c:216,5'
          Dst:             settings_reg_query_bool
        - Src:             'libfreerdp/core/settings.c:217,5'
          Dst:             settings_reg_query_bool
        - Src:             'libfreerdp/core/settings.c:218,5'
          Dst:             settings_reg_query_bool
        - Src:             'libfreerdp/core/settings.c:220,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:222,5'
          Dst:             settings_reg_query_bool
        - Src:             'libfreerdp/core/settings.c:224,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:226,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:228,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:230,5'
          Dst:             RegCloseKey
        - Src:             'libfreerdp/core/settings.c:235,15'
          Dst:             freerdp_getApplicatonDetailsRegKey
        - Src:             'libfreerdp/core/settings.c:240,8'
          Dst:             RegOpenKeyExA
        - Src:             'libfreerdp/core/settings.c:245,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:253,12'
          Dst:             snprintf
        - Src:             'libfreerdp/core/settings.c:254,12'
          Dst:             snprintf
        - Src:             'libfreerdp/core/settings.c:255,11'
          Dst:             settings_reg_query_dword_val
        - Src:             'libfreerdp/core/settings.c:256,11'
          Dst:             settings_reg_query_bool_val
        - Src:             'libfreerdp/core/settings.c:259,11'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/settings.c:261,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/settings.c:265,5'
          Dst:             settings_reg_query_bool
        - Src:             'libfreerdp/core/settings.c:267,5'
          Dst:             RegCloseKey
        - Src:             'libfreerdp/core/settings.c:272,15'
          Dst:             freerdp_getApplicatonDetailsRegKey
        - Src:             'libfreerdp/core/settings.c:277,8'
          Dst:             RegOpenKeyExA
        - Src:             'libfreerdp/core/settings.c:284,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:291,12'
          Dst:             snprintf
        - Src:             'libfreerdp/core/settings.c:292,12'
          Dst:             snprintf
        - Src:             'libfreerdp/core/settings.c:294,6'
          Dst:             settings_reg_query_word_val
        - Src:             'libfreerdp/core/settings.c:295,6'
          Dst:             settings_reg_query_word_val
        - Src:             'libfreerdp/core/settings.c:296,11'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/settings.c:298,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/settings.c:302,6'
          Dst:             settings_reg_query_word_val
        - Src:             'libfreerdp/core/settings.c:304,6'
          Dst:             settings_reg_query_word_val
        - Src:             'libfreerdp/core/settings.c:306,11'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/settings.c:307,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/settings.c:310,5'
          Dst:             RegCloseKey
        - Src:             'libfreerdp/core/settings.c:312,10'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:314,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/settings.c:319,15'
          Dst:             freerdp_getApplicatonDetailsRegKey
        - Src:             'libfreerdp/core/settings.c:324,8'
          Dst:             RegOpenKeyExA
        - Src:             'libfreerdp/core/settings.c:329,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:331,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:333,5'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:335,5'
          Dst:             RegCloseKey
    - 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:    19
      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:    settings_server_load_hkey_local_machine
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - RegCloseKey
        - RegOpenKeyExA
        - freerdp_getApplicatonDetailsRegKey
        - settings_reg_query_bool
        - settings_reg_query_dword
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:345,14'
          Dst:             freerdp_getApplicatonDetailsRegKey
        - Src:             'libfreerdp/core/settings.c:350,6'
          Dst:             RegOpenKeyExA
        - Src:             'libfreerdp/core/settings.c:356,2'
          Dst:             settings_reg_query_bool
        - Src:             'libfreerdp/core/settings.c:357,2'
          Dst:             settings_reg_query_bool
        - Src:             'libfreerdp/core/settings.c:358,2'
          Dst:             settings_reg_query_bool
        - Src:             'libfreerdp/core/settings.c:359,2'
          Dst:             settings_reg_query_dword
        - Src:             'libfreerdp/core/settings.c:360,2'
          Dst:             settings_reg_query_bool
        - Src:             'libfreerdp/core/settings.c:362,2'
          Dst:             RegCloseKey
    - functionName:    union_rect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          169
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:81,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:82,2'
          Dst:             winpr_int_assert
    - functionName:    align_rects
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          194
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:118,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:119,2'
          Dst:             winpr_int_assert
    - functionName:    alloc_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    find_path_exists_with_dijkstra
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 586
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         83
      ICount:          436
      EdgeCount:       98
      CyclomaticComplexity: 17
      functionsReached:
        - WLog_Print_dbg_tag
        - alloc_array
        - alloc_free
        - calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:500,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:502,18'
          Dst:             alloc_array
        - Src:             'libfreerdp/core/settings.c:503,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:505,21'
          Dst:             calloc
        - Src:             'libfreerdp/core/settings.c:506,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:508,20'
          Dst:             calloc
        - Src:             'libfreerdp/core/settings.c:509,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:511,19'
          Dst:             calloc
        - Src:             'libfreerdp/core/settings.c:512,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:574,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/settings.c:580,2'
          Dst:             alloc_free
    - functionName:    alloc_array
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          56
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:478,16'
          Dst:             calloc
    - functionName:    monitor_has_gaps
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          143
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - align_rects
        - freerdp_settings_get_pointer_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:445,7'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/core/settings.c:450,7'
          Dst:             align_rects
        - Src:             'libfreerdp/core/settings.c:460,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    bounds2str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - snprintf
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:73,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:74,8'
          Dst:             snprintf
    - functionName:    intersect_rects
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          194
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:106,2'
          Dst:             winpr_int_assert
    - functionName:    monitor_operlaps
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 399
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          116
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - bounds2str
        - freerdp_settings_get_pointer_array
        - intersect_rects
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:406,7'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/core/settings.c:411,7'
          Dst:             intersect_rects
        - Src:             'libfreerdp/core/settings.c:416,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/settings.c:417,4'
          Dst:             bounds2str
        - Src:             'libfreerdp/core/settings.c:417,4'
          Dst:             bounds2str
        - Src:             'libfreerdp/core/settings.c:417,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/settings.c:419,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/settings.c:422,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    log_monitor
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          103
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_desktop_rotation_flags_to_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:616,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:618,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/settings.c:618,2'
          Dst:             freerdp_desktop_rotation_flags_to_string
        - Src:             'libfreerdp/core/settings.c:618,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    freerdp_settings_enforce_consistency
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1823
      functionLinenumberEnd: 1835
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_settings_get_bool
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:1824,6'
          Dst:             freerdp_settings_get_bool
    - functionName:    freerdp_settings_enforce_monitor_exists
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1774
      functionLinenumberEnd: 1820
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         64
      ICount:          315
      EdgeCount:       77
      CyclomaticComplexity: 15
      functionsReached:
        - freerdp_settings_get_bool
        - freerdp_settings_get_uint16
        - freerdp_settings_get_uint32
        - freerdp_settings_set_monitor_def_array_sorted
        - freerdp_settings_set_pointer_len
        - freerdp_settings_set_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:1775,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1776,26'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/settings.c:1777,24'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/settings.c:1780,22'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1783,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1789,24'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1790,25'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1791,25'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1792,26'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1794,7'
          Dst:             freerdp_settings_get_uint16
        - Src:             'libfreerdp/core/settings.c:1796,7'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1798,7'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1800,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1806,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:1806,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:1807,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:1807,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:1815,8'
          Dst:             freerdp_settings_set_monitor_def_array_sorted
    - functionName:    freerdp_target_net_adresses_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1767
      functionLinenumberEnd: 1770
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_target_net_addresses_free
        - freerdp_target_net_addresses_resize
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:1768,2'
          Dst:             freerdp_target_net_addresses_free
        - Src:             'libfreerdp/core/settings.c:1770,9'
          Dst:             freerdp_target_net_addresses_resize
    - functionName:    identity_set_from_smartcard_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1715
      functionLinenumberEnd: 1737
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - identity_set_from_settings
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:1737,9'
          Dst:             identity_set_from_settings
    - functionName:    identity_set_from_settings
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1694
      functionLinenumberEnd: 1705
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_settings_get_string_as_utf16
        - identity_set_from_settings_with_pwd
        - winpr_int_assert
        - zfree
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:1695,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:1696,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:1700,20'
          Dst:             freerdp_settings_get_string_as_utf16
        - Src:             'libfreerdp/core/settings.c:1703,6'
          Dst:             identity_set_from_settings_with_pwd
        - Src:             'libfreerdp/core/settings.c:1704,2'
          Dst:             zfree
    - functionName:    identity_set_from_settings_with_pwd
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1673
      functionLinenumberEnd: 1687
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_settings_get_string_as_utf16
        - sspi_SetAuthIdentityWithLengthW
        - winpr_int_assert
        - zfree
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:1674,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:1675,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:1680,20'
          Dst:             freerdp_settings_get_string_as_utf16
        - Src:             'libfreerdp/core/settings.c:1681,18'
          Dst:             freerdp_settings_get_string_as_utf16
        - Src:             'libfreerdp/core/settings.c:1683,17'
          Dst:             sspi_SetAuthIdentityWithLengthW
        - Src:             'libfreerdp/core/settings.c:1685,2'
          Dst:             zfree
        - Src:             'libfreerdp/core/settings.c:1686,2'
          Dst:             zfree
    - functionName:    zfree
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1662
      functionLinenumberEnd: 1666
      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:    freerdp_settings_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1643
      functionLinenumberEnd: 1656
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
        - freerdp_settings_copy
        - freerdp_settings_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:1644,35'
          Dst:             calloc
        - Src:             'libfreerdp/core/settings.c:1646,7'
          Dst:             freerdp_settings_copy
        - Src:             'libfreerdp/core/settings.c:1653,2'
          Dst:             freerdp_settings_free
    - functionName:    freerdp_settings_copy
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1617
      functionLinenumberEnd: 1640
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          70
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - freerdp_settings_clone_keys
        - freerdp_settings_free_internal
        - freerdp_settings_free_internal_ensure_reset
        - freerdp_settings_int_buffer_copy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:1624,2'
          Dst:             freerdp_settings_free_internal
        - Src:             'libfreerdp/core/settings.c:1628,7'
          Dst:             freerdp_settings_clone_keys
        - Src:             'libfreerdp/core/settings.c:1631,2'
          Dst:             freerdp_settings_free_internal_ensure_reset
        - Src:             'libfreerdp/core/settings.c:1634,7'
          Dst:             freerdp_settings_int_buffer_copy
        - Src:             'libfreerdp/core/settings.c:1638,2'
          Dst:             freerdp_settings_free_internal
    - functionName:    freerdp_settings_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1395
      functionLinenumberEnd: 1401
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_free_internal
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:1399,2'
          Dst:             freerdp_settings_free_internal
    - functionName:    freerdp_settings_free_internal
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1373
      functionLinenumberEnd: 1384
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_capability_buffer_free
        - freerdp_device_collection_free
        - freerdp_dynamic_channel_collection_free
        - freerdp_server_license_issuers_free
        - freerdp_settings_free_keys
        - freerdp_static_channel_collection_free
        - freerdp_target_net_addresses_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:1374,2'
          Dst:             freerdp_server_license_issuers_free
        - Src:             'libfreerdp/core/settings.c:1375,2'
          Dst:             freerdp_target_net_addresses_free
        - Src:             'libfreerdp/core/settings.c:1376,2'
          Dst:             freerdp_device_collection_free
        - Src:             'libfreerdp/core/settings.c:1377,2'
          Dst:             freerdp_static_channel_collection_free
        - Src:             'libfreerdp/core/settings.c:1378,2'
          Dst:             freerdp_dynamic_channel_collection_free
        - Src:             'libfreerdp/core/settings.c:1380,2'
          Dst:             freerdp_capability_buffer_free
        - Src:             'libfreerdp/core/settings.c:1383,2'
          Dst:             freerdp_settings_free_keys
    - functionName:    freerdp_settings_free_internal_ensure_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1387
      functionLinenumberEnd: 1392
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_settings_int_buffer_copy
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1404
      functionLinenumberEnd: 1614
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         134
      ICount:          684
      EdgeCount:       176
      CyclomaticComplexity: 44
      functionsReached:
        - calloc
        - freerdp_capability_buffer_copy
        - freerdp_certificate_clone
        - freerdp_certificate_free
        - freerdp_key_clone
        - freerdp_key_free
        - freerdp_server_license_issuers_copy
        - freerdp_settings_get_pointer
        - freerdp_settings_get_pointer_array
        - freerdp_settings_get_string
        - freerdp_settings_get_uint32
        - freerdp_settings_set_pointer_array
        - freerdp_settings_set_pointer_len
        - freerdp_settings_set_string
        - freerdp_settings_set_uint32
        - freerdp_target_net_adresses_reset
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:1434,14'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1436,21'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/core/settings.c:1437,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1441,7'
          Dst:             freerdp_server_license_issuers_copy
        - Src:             'libfreerdp/core/settings.c:1447,26'
          Dst:             freerdp_certificate_clone
        - Src:             'libfreerdp/core/settings.c:1450,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1452,4'
          Dst:             freerdp_certificate_free
        - Src:             'libfreerdp/core/settings.c:1458,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1464,24'
          Dst:             freerdp_key_clone
        - Src:             'libfreerdp/core/settings.c:1467,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1469,4'
          Dst:             freerdp_key_free
        - Src:             'libfreerdp/core/settings.c:1475,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1480,35'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1479,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1485,23'
          Dst:             calloc
        - Src:             'libfreerdp/core/settings.c:1492,7'
          Dst:             freerdp_capability_buffer_copy
        - Src:             'libfreerdp/core/settings.c:1498,7'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/core/settings.c:1499,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1506,7'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/core/settings.c:1507,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1513,10'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/core/settings.c:1511,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1517,10'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/core/settings.c:1515,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1522,7'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/core/settings.c:1523,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1528,26'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1529,8'
          Dst:             freerdp_target_net_adresses_reset
        - Src:             'libfreerdp/core/settings.c:1535,8'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/core/settings.c:1537,8'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/core/settings.c:1539,9'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/settings.c:1541,9'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/settings.c:1547,22'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1548,24'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1552,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1554,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1560,8'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/core/settings.c:1561,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:1562,9'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/settings.c:1565,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:1566,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:1569,22'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1570,24'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1574,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1576,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1582,8'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/core/settings.c:1583,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:1584,9'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/settings.c:1589,22'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1590,24'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:1594,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1596,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1602,8'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/core/settings.c:1603,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:1604,9'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/settings.c:1610,35'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/settings.c:1609,7'
          Dst:             freerdp_settings_set_string
    - functionName:    settings_load_hkey_local_machine
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_get_bool
        - settings_client_load_hkey_local_machine
        - settings_server_load_hkey_local_machine
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:367,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/settings.c:368,3'
          Dst:             settings_server_load_hkey_local_machine
        - Src:             'libfreerdp/core/settings.c:370,3'
          Dst:             settings_client_load_hkey_local_machine
    - functionName:    settings_init_computer_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - GetComputerNameExA
        - freerdp_settings_set_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:378,7'
          Dst:             GetComputerNameExA
        - Src:             'libfreerdp/core/settings.c:381,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:383,9'
          Dst:             freerdp_settings_set_string
    - functionName:    freerdp_settings_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 816
      functionLinenumberEnd: 1370
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         477
      ICount:          2304
      EdgeCount:       692
      CyclomaticComplexity: 217
      functionsReached:
        - GetCombinedPath
        - GetDynamicTimeZoneInformation
        - GetKnownPath
        - GetTimeZoneInformation
        - UuidCreate
        - calloc
        - freerdp_capability_buffer_resize
        - freerdp_getApplicationDetailsProduct
        - freerdp_getApplicationDetailsString
        - freerdp_getApplicationDetailsVendor
        - freerdp_server_license_issuers_copy
        - freerdp_settings_free
        - freerdp_settings_get_bool
        - freerdp_settings_get_config_path
        - freerdp_settings_get_pointer_writable
        - freerdp_settings_get_string
        - freerdp_settings_set_bool
        - freerdp_settings_set_default_order_support
        - freerdp_settings_set_int32
        - freerdp_settings_set_pointer_array
        - freerdp_settings_set_pointer_len
        - freerdp_settings_set_string
        - freerdp_settings_set_string_from_utf16N
        - freerdp_settings_set_string_len
        - freerdp_settings_set_uint16
        - freerdp_settings_set_uint32
        - guid2str
        - settings_init_computer_name
        - settings_load_hkey_local_machine
        - winpr_asprintf
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/core/settings.c:1150,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:819,40'
          Dst:             calloc
        - Src:             'libfreerdp/core/settings.c:825,24'
          Dst:             freerdp_getApplicationDetailsVendor
        - Src:             'libfreerdp/core/settings.c:826,25'
          Dst:             freerdp_getApplicationDetailsProduct
        - Src:             'libfreerdp/core/settings.c:827,25'
          Dst:             freerdp_getApplicationDetailsString
        - Src:             'libfreerdp/core/settings.c:832,55'
          Dst:             freerdp_getApplicationDetailsString
        - Src:             'libfreerdp/core/settings.c:832,9'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/core/settings.c:833,55'
          Dst:             freerdp_getApplicationDetailsVendor
        - Src:             'libfreerdp/core/settings.c:833,9'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/core/settings.c:834,55'
          Dst:             freerdp_getApplicationDetailsProduct
        - Src:             'libfreerdp/core/settings.c:834,9'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/core/settings.c:843,20'
          Dst:             freerdp_server_license_issuers_copy
        - Src:             'libfreerdp/core/settings.c:852,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:855,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:859,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:861,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:864,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:867,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:872,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:875,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:878,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:880,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:882,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:884,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:886,8'
          Dst:             freerdp_settings_set_uint16
        - Src:             'libfreerdp/core/settings.c:889,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:891,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:894,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:899,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:902,7'
          Dst:             freerdp_settings_set_uint16
        - Src:             'libfreerdp/core/settings.c:906,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:910,35'
          Dst:             freerdp_getApplicationDetailsVendor
        - Src:             'libfreerdp/core/settings.c:909,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:917,24'
          Dst:             freerdp_getApplicationDetailsProduct
        - Src:             'libfreerdp/core/settings.c:916,9'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/core/settings.c:922,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:928,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:931,7'
          Dst:             freerdp_settings_set_uint16
        - Src:             'libfreerdp/core/settings.c:942,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:945,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:946,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:947,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:948,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:949,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:950,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:951,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:958,7'
          Dst:             freerdp_settings_set_uint16
        - Src:             'libfreerdp/core/settings.c:959,7'
          Dst:             freerdp_settings_set_uint16
        - Src:             'libfreerdp/core/settings.c:962,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:963,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:964,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:965,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:966,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:967,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:968,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:969,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:970,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:971,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:972,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:973,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:974,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:975,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:976,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:977,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:978,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:979,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:980,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:981,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:982,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:983,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:984,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:986,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:988,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:989,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:990,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:991,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:992,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:994,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:995,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:996,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:997,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:998,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:999,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1000,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1001,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1002,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1003,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1004,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1005,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1006,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1007,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1008,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1009,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1010,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1011,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1013,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1014,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1015,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1016,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1017,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1018,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1019,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1020,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1021,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1022,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1023,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1024,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1025,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1026,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1027,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1028,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1031,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1035,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1038,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1041,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1044,7'
          Dst:             freerdp_settings_set_int32
        - Src:             'libfreerdp/core/settings.c:1047,7'
          Dst:             freerdp_settings_set_int32
        - Src:             'libfreerdp/core/settings.c:1050,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1053,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1056,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1059,7'
          Dst:             settings_init_computer_name
        - Src:             'libfreerdp/core/settings.c:1062,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1065,7'
          Dst:             freerdp_capability_buffer_resize
        - Src:             'libfreerdp/core/settings.c:1070,8'
          Dst:             freerdp_settings_set_string_len
        - Src:             'libfreerdp/core/settings.c:1084,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/settings.c:1086,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1087,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1092,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1093,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1097,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1099,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1100,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1101,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1102,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1103,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1104,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1105,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1106,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1107,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1110,34'
          Dst:             calloc
        - Src:             'libfreerdp/core/settings.c:1118,8'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/settings.c:1120,8'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/settings.c:1123,8'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/settings.c:1125,8'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/settings.c:1128,8'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/settings.c:1131,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1132,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1133,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1134,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1136,25'
          Dst:             calloc
        - Src:             'libfreerdp/core/settings.c:1141,24'
          Dst:             calloc
        - Src:             'libfreerdp/core/settings.c:1182,8'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/settings.c:1189,8'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/settings.c:1192,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1193,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1194,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1195,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1196,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1197,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:1198,7'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/settings.c:1199,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1201,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1202,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1203,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1208,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1210,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1211,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1212,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1213,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1214,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1215,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1216,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1217,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1218,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1219,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1220,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1221,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1222,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1223,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1224,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1225,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1226,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1227,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1228,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1229,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1230,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1231,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1232,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1233,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1234,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1235,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1236,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1237,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1238,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1242,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1248,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/settings.c:1253,54'
          Dst:             calloc
        - Src:             'libfreerdp/core/settings.c:1262,7'
          Dst:             freerdp_settings_get_pointer_writable
        - Src:             'libfreerdp/core/settings.c:1263,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:1265,3'
          Dst:             GetTimeZoneInformation
        - Src:             'libfreerdp/core/settings.c:1266,3'
          Dst:             GetDynamicTimeZoneInformation
        - Src:             'libfreerdp/core/settings.c:1268,8'
          Dst:             freerdp_settings_set_string_from_utf16N
        - Src:             'libfreerdp/core/settings.c:1273,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1278,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1279,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1280,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1281,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1282,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1283,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1286,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/settings.c:1290,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1293,10'
          Dst:             GetKnownPath
        - Src:             'libfreerdp/core/settings.c:1294,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:1297,15'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/settings.c:1300,18'
          Dst:             freerdp_settings_get_config_path
        - Src:             'libfreerdp/core/settings.c:1301,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:1304,19'
          Dst:             GetCombinedPath
        - Src:             'libfreerdp/core/settings.c:1305,9'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:1314,2'
          Dst:             settings_load_hkey_local_machine
        - Src:             'libfreerdp/core/settings.c:1316,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1318,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/settings.c:1320,27'
          Dst:             calloc
        - Src:             'libfreerdp/core/settings.c:1322,7'
          Dst:             freerdp_settings_set_uint16
        - Src:             'libfreerdp/core/settings.c:1324,7'
          Dst:             freerdp_settings_set_uint16
        - Src:             'libfreerdp/core/settings.c:1330,7'
          Dst:             freerdp_settings_set_default_order_support
        - Src:             'libfreerdp/core/settings.c:1334,23'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/settings.c:1343,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1349,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1351,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/settings.c:1355,6'
          Dst:             UuidCreate
        - Src:             'libfreerdp/core/settings.c:1360,35'
          Dst:             guid2str
        - Src:             'libfreerdp/core/settings.c:1359,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/settings.c:1367,2'
          Dst:             freerdp_settings_free
    - functionName:    freerdp_settings_get_config_path
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 811
      functionLinenumberEnd: 812
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_GetConfigFilePath
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:812,9'
          Dst:             freerdp_GetConfigFilePath
    - functionName:    freerdp_settings_set_default_order_support
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 770
      functionLinenumberEnd: 808
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          152
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_get_bool
        - freerdp_settings_get_pointer_writable
        - freerdp_settings_get_uint32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:771,23'
          Dst:             freerdp_settings_get_pointer_writable
        - Src:             'libfreerdp/core/settings.c:789,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/settings.c:791,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/settings.c:793,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/settings.c:795,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/settings.c:798,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:800,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:802,6'
          Dst:             freerdp_settings_get_uint32
    - functionName:    freerdp_settings_client_monitors_check_primary_and_origin
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 660
      functionLinenumberEnd: 739
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         45
      ICount:          259
      EdgeCount:       59
      CyclomaticComplexity: 16
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_pointer_array
        - freerdp_settings_get_uint32
        - union_rect
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:661,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:671,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/settings.c:678,7'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/core/settings.c:683,12'
          Dst:             union_rect
        - Src:             'libfreerdp/core/settings.c:689,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/settings.c:699,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/settings.c:709,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/settings.c:716,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/settings.c:724,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/settings.c:729,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/settings.c:734,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_settings_client_monitors_have_gaps
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 612
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          100
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - alloc_array
        - alloc_free
        - find_path_exists_with_dijkstra
        - freerdp_settings_get_pointer_array
        - freerdp_settings_get_uint32
        - monitor_has_gaps
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:591,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:595,19'
          Dst:             alloc_array
        - Src:             'libfreerdp/core/settings.c:596,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/settings.c:601,7'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/core/settings.c:602,7'
          Dst:             monitor_has_gaps
        - Src:             'libfreerdp/core/settings.c:606,8'
          Dst:             find_path_exists_with_dijkstra
        - Src:             'libfreerdp/core/settings.c:609,2'
          Dst:             alloc_free
    - functionName:    freerdp_settings_client_monitors_overlap
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 644
      functionLinenumberEnd: 654
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_settings_get_pointer_array
        - freerdp_settings_get_uint32
        - monitor_operlaps
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:645,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:649,7'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/core/settings.c:650,7'
          Dst:             monitor_operlaps
    - functionName:    log_monitor_configuration
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          95
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_get_pointer_array
        - freerdp_settings_get_uint32
        - log_monitor
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:632,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:633,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/settings.c:633,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/settings.c:637,7'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/core/settings.c:638,3'
          Dst:             log_monitor
        - Src:             'libfreerdp/core/settings.c:640,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/settings.c:640,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    freerdp_settings_check_client_after_preconnect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 766
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         43
      ICount:          166
      EdgeCount:       51
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_client_monitors_check_primary_and_origin
        - freerdp_settings_client_monitors_have_gaps
        - freerdp_settings_client_monitors_overlap
        - log_monitor_configuration
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:743,14'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/settings.c:745,2'
          Dst:             log_monitor_configuration
        - Src:             'libfreerdp/core/settings.c:746,6'
          Dst:             freerdp_settings_client_monitors_overlap
        - Src:             'libfreerdp/core/settings.c:748,6'
          Dst:             freerdp_settings_client_monitors_have_gaps
        - Src:             'libfreerdp/core/settings.c:750,7'
          Dst:             freerdp_settings_client_monitors_check_primary_and_origin
        - Src:             'libfreerdp/core/settings.c:755,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/settings.c:755,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/settings.c:756,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/settings.c:756,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/settings.c:757,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/settings.c:757,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/settings.c:760,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/settings.c:760,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/settings.c:763,3'
          Dst:             log_monitor_configuration
    - functionName:    freerdp_settings_glyph_level_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1742
      functionLinenumberEnd: 1763
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       17
      CyclomaticComplexity: 10
      functionsReached:
        - snprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/settings.c:1744,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:1762,8'
          Dst:             snprintf
    - functionName:    freerdp_settings_print_warnings
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_uint32
        - freerdp_settings_glyph_level_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/settings.c:388,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/settings.c:392,3'
          Dst:             freerdp_settings_glyph_level_string
        - Src:             'libfreerdp/core/settings.c:392,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    init_app_details
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strncpy
        - updateDetailsString
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/helpers.c:77,22'
          Dst:             strncpy
        - Src:             'libfreerdp/utils/helpers.c:78,22'
          Dst:             strncpy
        - Src:             'libfreerdp/utils/helpers.c:87,2'
          Dst:             updateDetailsString
    - functionName:    updateDetailsString
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         24
      ICount:          85
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertUtf8NToWChar
        - snprintf
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/helpers.c:47,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/helpers.c:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/helpers.c:52,10'
          Dst:             snprintf
        - Src:             'libfreerdp/utils/helpers.c:55,10'
          Dst:             snprintf
        - Src:             'libfreerdp/utils/helpers.c:60,9'
          Dst:             snprintf
        - Src:             'libfreerdp/utils/helpers.c:64,9'
          Dst:             snprintf
        - Src:             'libfreerdp/utils/helpers.c:67,8'
          Dst:             ConvertUtf8NToWChar
    - functionName:    freerdp_GetJSONConfigFile
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WINPR_JSON_ParseFromFile
        - freerdp_GetConfigFilePath
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/helpers.c:301,15'
          Dst:             freerdp_GetConfigFilePath
        - Src:             'libfreerdp/utils/helpers.c:305,21'
          Dst:             WINPR_JSON_ParseFromFile
    - functionName:    freerdp_GetConfigFilePath
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          156
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - GetCombinedPathV
        - GetKnownPath
        - _stricmp
        - freerdp_areApplicationDetailsCustomized
        - freerdp_getApplicationDetailsProduct
        - freerdp_getApplicationDetailsVendor
        - freerdp_getApplicationDetailsVersion
        - freerdp_settings_get_legacy_config_path
        - getCustomConfigPath
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/helpers.c:258,26'
          Dst:             freerdp_areApplicationDetailsCustomized
        - Src:             'libfreerdp/utils/helpers.c:261,10'
          Dst:             getCustomConfigPath
        - Src:             'libfreerdp/utils/helpers.c:265,23'
          Dst:             freerdp_getApplicationDetailsVendor
        - Src:             'libfreerdp/utils/helpers.c:266,24'
          Dst:             freerdp_getApplicationDetailsProduct
        - Src:             'libfreerdp/utils/helpers.c:267,26'
          Dst:             freerdp_getApplicationDetailsVersion
        - Src:             'libfreerdp/utils/helpers.c:273,18'
          Dst:             _stricmp
        - Src:             'libfreerdp/utils/helpers.c:274,10'
          Dst:             freerdp_settings_get_legacy_config_path
        - Src:             'libfreerdp/utils/helpers.c:277,17'
          Dst:             GetKnownPath
        - Src:             'libfreerdp/utils/helpers.c:283,10'
          Dst:             GetCombinedPathV
        - Src:             'libfreerdp/utils/helpers.c:285,10'
          Dst:             GetCombinedPathV
        - Src:             'libfreerdp/utils/helpers.c:294,15'
          Dst:             GetCombinedPathV
    - functionName:    freerdp_areApplicationDetailsCustomized
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getCustomConfigPath
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          117
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - GetCombinedPathV
        - GetKnownSubPathV
        - freerdp_getApplicationDetailsProduct
        - freerdp_getApplicationDetailsVendor
        - freerdp_getApplicationDetailsVersion
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/helpers.c:224,23'
          Dst:             freerdp_getApplicationDetailsVendor
        - Src:             'libfreerdp/utils/helpers.c:225,24'
          Dst:             freerdp_getApplicationDetailsProduct
        - Src:             'libfreerdp/utils/helpers.c:226,26'
          Dst:             freerdp_getApplicationDetailsVersion
        - Src:             'libfreerdp/utils/helpers.c:231,17'
          Dst:             GetKnownSubPathV
        - Src:             'libfreerdp/utils/helpers.c:237,10'
          Dst:             GetCombinedPathV
        - Src:             'libfreerdp/utils/helpers.c:239,10'
          Dst:             GetCombinedPathV
        - Src:             'libfreerdp/utils/helpers.c:248,15'
          Dst:             GetCombinedPathV
    - functionName:    freerdp_getApplicationDetailsVendor
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - initializeApplicationDetails
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/helpers.c:131,7'
          Dst:             initializeApplicationDetails
    - functionName:    freerdp_getApplicationDetailsProduct
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - initializeApplicationDetails
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/helpers.c:138,7'
          Dst:             initializeApplicationDetails
    - functionName:    freerdp_getApplicationDetailsVersion
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - initializeApplicationDetails
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/helpers.c:178,7'
          Dst:             initializeApplicationDetails
    - functionName:    freerdp_settings_get_legacy_config_path
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - GetCombinedPath
        - GetKnownSubPath
        - tolower
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/helpers.c:206,22'
          Dst:             tolower
        - Src:             'libfreerdp/utils/helpers.c:208,15'
          Dst:             GetKnownSubPath
        - Src:             'libfreerdp/utils/helpers.c:213,19'
          Dst:             GetCombinedPath
    - functionName:    tolower
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    initializeApplicationDetails
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 94
      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:             'libfreerdp/utils/helpers.c:94,9'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'libfreerdp/utils/helpers.c:94,9'
          Dst:             init_app_details
    - functionName:    freerdp_getApplicationDetailsStringW
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_getApplicationDetailsString
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_getApplicatonDetailsRegKey
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_getApplicatonDetailsCombined
        - winpr_asprintf
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/helpers.c:145,14'
          Dst:             freerdp_getApplicatonDetailsCombined
        - Src:             'libfreerdp/utils/helpers.c:151,8'
          Dst:             winpr_asprintf
    - functionName:    freerdp_getApplicatonDetailsCombined
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_getApplicationDetailsProduct
        - freerdp_getApplicationDetailsVendor
        - freerdp_getApplicationDetailsVersion
        - winpr_asprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/helpers.c:158,26'
          Dst:             freerdp_getApplicationDetailsVersion
        - Src:             'libfreerdp/utils/helpers.c:159,23'
          Dst:             freerdp_getApplicationDetailsVendor
        - Src:             'libfreerdp/utils/helpers.c:160,24'
          Dst:             freerdp_getApplicationDetailsProduct
        - Src:             'libfreerdp/utils/helpers.c:166,9'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/utils/helpers.c:170,9'
          Dst:             winpr_asprintf
    - functionName:    freerdp_setApplicationDetails
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/helpers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          123
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - PathGetSeparatorA
        - freerdp_getApplicatonDetailsCombined
        - initializeApplicationDetails
        - strncpy
        - strnlen
        - updateDetailsString
        - winpr_setApplicationDetails
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/helpers.c:99,7'
          Dst:             initializeApplicationDetails
        - Src:             'libfreerdp/utils/helpers.c:104,22'
          Dst:             strnlen
        - Src:             'libfreerdp/utils/helpers.c:105,22'
          Dst:             strnlen
        - Src:             'libfreerdp/utils/helpers.c:109,7'
          Dst:             strncpy
        - Src:             'libfreerdp/utils/helpers.c:112,7'
          Dst:             strncpy
        - Src:             'libfreerdp/utils/helpers.c:118,25'
          Dst:             PathGetSeparatorA
        - Src:             'libfreerdp/utils/helpers.c:119,14'
          Dst:             freerdp_getApplicatonDetailsCombined
        - Src:             'libfreerdp/utils/helpers.c:123,18'
          Dst:             winpr_setApplicationDetails
        - Src:             'libfreerdp/utils/helpers.c:125,2'
          Dst:             updateDetailsString
    - functionName:    freerdp_order_support_flags_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          178
      EdgeCount:       68
      CyclomaticComplexity: 35
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/utils/string.c:180,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    freerdp_input_touch_state_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          73
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_desktop_rotation_flags_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/utils/string.c:140,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    freerdp_extract_key_value
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          125
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - strtoul
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/string.c:119,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/utils/string.c:120,22'
          Dst:             strtoul
        - Src:             'libfreerdp/utils/string.c:121,7'
          Dst:             __errno_location
        - Src:             'libfreerdp/utils/string.c:124,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/utils/string.c:125,22'
          Dst:             strtoul
        - Src:             'libfreerdp/utils/string.c:126,7'
          Dst:             __errno_location
    - functionName:    rdp_cluster_info_flags_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          125
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - snprintf
        - winpr_str_append
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/utils/string.c:80,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/utils/string.c:73,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/utils/string.c:75,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/utils/string.c:77,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/utils/string.c:104,2'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/utils/string.c:107,9'
          Dst:             snprintf
        - Src:             'libfreerdp/utils/string.c:108,3'
          Dst:             winpr_str_append
    - functionName:    rdp_redirection_flags_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_str_append
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/string.c:62,9'
          Dst:             winpr_str_append
    - functionName:    settings_json_get_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4366
      functionLinenumberEnd: 4391
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          155
      EdgeCount:       47
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_IsNumber
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - __errno_location
        - int_from_json_item
        - settings_json_get
        - winpr_int_assert
        - winpr_strerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4367,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4368,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4369,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4371,21'
          Dst:             settings_json_get
        - Src:             'libfreerdp/common/settings.c:4375,7'
          Dst:             WINPR_JSON_IsNumber
        - Src:             'libfreerdp/common/settings.c:4377,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4377,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings.c:4381,22'
          Dst:             int_from_json_item
        - Src:             'libfreerdp/common/settings.c:4382,6'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:4385,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4385,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:4385,3'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/common/settings.c:4385,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    settings_json_get
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4326
      functionLinenumberEnd: 4332
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          54
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4327,21'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4330,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4330,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    int_from_json_item
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2747
      functionLinenumberEnd: 2769
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          101
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - WINPR_JSON_GetNumberValue
        - WINPR_JSON_IsNumber
        - __errno_location
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2748,16'
          Dst:             WINPR_JSON_IsNumber
        - Src:             'libfreerdp/common/settings.c:2750,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:2754,21'
          Dst:             WINPR_JSON_GetNumberValue
        - Src:             'libfreerdp/common/settings.c:2757,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:2764,3'
          Dst:             __errno_location
    - functionName:    settings_json_get_uint
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4337
      functionLinenumberEnd: 4362
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          152
      EdgeCount:       47
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_IsNumber
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - __errno_location
        - settings_json_get
        - uint_from_json_item
        - winpr_int_assert
        - winpr_strerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4338,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4339,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4340,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4342,21'
          Dst:             settings_json_get
        - Src:             'libfreerdp/common/settings.c:4346,7'
          Dst:             WINPR_JSON_IsNumber
        - Src:             'libfreerdp/common/settings.c:4348,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4348,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings.c:4352,23'
          Dst:             uint_from_json_item
        - Src:             'libfreerdp/common/settings.c:4353,6'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:4356,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4356,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:4356,3'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/common/settings.c:4356,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    uint_from_json_item
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2783
      functionLinenumberEnd: 2804
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          96
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - WINPR_JSON_GetNumberValue
        - WINPR_JSON_IsNumber
        - __errno_location
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2784,16'
          Dst:             WINPR_JSON_IsNumber
        - Src:             'libfreerdp/common/settings.c:2786,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:2790,21'
          Dst:             WINPR_JSON_GetNumberValue
        - Src:             'libfreerdp/common/settings.c:2793,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:2800,3'
          Dst:             __errno_location
    - functionName:    get_bool
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4077
      functionLinenumberEnd: 4082
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_IsBool
        - WINPR_JSON_IsTrue
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4078,21'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4079,16'
          Dst:             WINPR_JSON_IsBool
        - Src:             'libfreerdp/common/settings.c:4081,9'
          Dst:             WINPR_JSON_IsTrue
    - functionName:    get_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4069
      functionLinenumberEnd: 4074
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_GetStringValue
        - WINPR_JSON_IsString
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4070,21'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4071,16'
          Dst:             WINPR_JSON_IsString
        - Src:             'libfreerdp/common/settings.c:4073,9'
          Dst:             WINPR_JSON_GetStringValue
    - functionName:    device_from_json_item
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4086
      functionLinenumberEnd: 4163
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          362
      EdgeCount:       86
      CyclomaticComplexity: 18
      functionsReached:
        - WINPR_JSON_IsObject
        - __errno_location
        - freerdp_device_free
        - freerdp_device_new
        - freerdp_settings_set_pointer_array
        - get_bool
        - get_string
        - uint_from_json
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:4103,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4087,15'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:4090,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:4092,24'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:4096,21'
          Dst:             get_string
        - Src:             'libfreerdp/common/settings.c:4106,18'
          Dst:             get_string
        - Src:             'libfreerdp/common/settings.c:4110,19'
          Dst:             get_string
        - Src:             'libfreerdp/common/settings.c:4114,20'
          Dst:             get_string
        - Src:             'libfreerdp/common/settings.c:4121,18'
          Dst:             get_string
        - Src:             'libfreerdp/common/settings.c:4126,18'
          Dst:             get_string
        - Src:             'libfreerdp/common/settings.c:4130,9'
          Dst:             get_bool
        - Src:             'libfreerdp/common/settings.c:4135,18'
          Dst:             get_string
        - Src:             'libfreerdp/common/settings.c:4139,9'
          Dst:             get_bool
        - Src:             'libfreerdp/common/settings.c:4148,44'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4148,44'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4148,25'
          Dst:             freerdp_device_new
        - Src:             'libfreerdp/common/settings.c:4152,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:4153,25'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:4154,6'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:4156,3'
          Dst:             freerdp_device_free
        - Src:             'libfreerdp/common/settings.c:4160,18'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/common/settings.c:4161,2'
          Dst:             freerdp_device_free
    - functionName:    uint_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2807
      functionLinenumberEnd: 2816
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_IsObject
        - __errno_location
        - uint_from_json_item
      functionUses:    26
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2808,15'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:2810,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:2814,21'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:2815,9'
          Dst:             uint_from_json_item
    - functionName:    freerdp_device_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          399
      EdgeCount:       95
      CyclomaticComplexity: 20
      functionsReached:
        - _strdup
        - _stricmp
        - calloc
        - freerdp_addin_argv_new
        - freerdp_device_free
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:323,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/common/settings.c:348,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:321,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:336,35'
          Dst:             calloc
        - Src:             'libfreerdp/common/settings.c:344,25'
          Dst:             _strdup
        - Src:             'libfreerdp/common/settings.c:353,37'
          Dst:             _strdup
        - Src:             'libfreerdp/common/settings.c:360,36'
          Dst:             _stricmp
        - Src:             'libfreerdp/common/settings.c:366,30'
          Dst:             _strdup
        - Src:             'libfreerdp/common/settings.c:373,32'
          Dst:             _strdup
        - Src:             'libfreerdp/common/settings.c:380,36'
          Dst:             _strdup
        - Src:             'libfreerdp/common/settings.c:388,32'
          Dst:             _strdup
        - Src:             'libfreerdp/common/settings.c:398,29'
          Dst:             _strdup
        - Src:             'libfreerdp/common/settings.c:409,18'
          Dst:             freerdp_addin_argv_new
        - Src:             'libfreerdp/common/settings.c:417,3'
          Dst:             freerdp_device_free
    - functionName:    freerdp_device_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          94
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_addin_argv_free
      functionUses:    5
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:434,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:455,2'
          Dst:             freerdp_addin_argv_free
    - functionName:    freerdp_settings_set_pointer_array
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1812
      functionLinenumberEnd: 1995
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         182
      ICount:          1002
      EdgeCount:       234
      CyclomaticComplexity: 54
      functionsReached:
        - WLog_Print_dbg_tag
        - _strdup
        - freerdp_addin_argv_clone
        - freerdp_addin_argv_free
        - freerdp_device_clone
        - freerdp_device_free
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    28
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:1816,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:1831,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1837,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1840,4'
          Dst:             freerdp_device_free
        - Src:             'libfreerdp/common/settings.c:1841,36'
          Dst:             freerdp_device_clone
        - Src:             'libfreerdp/common/settings.c:1844,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1847,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:1849,43'
          Dst:             _strdup
        - Src:             'libfreerdp/common/settings.c:1852,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1855,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:1859,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1862,4'
          Dst:             freerdp_addin_argv_free
        - Src:             'libfreerdp/common/settings.c:1863,43'
          Dst:             freerdp_addin_argv_clone
        - Src:             'libfreerdp/common/settings.c:1866,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1869,4'
          Dst:             freerdp_addin_argv_free
        - Src:             'libfreerdp/common/settings.c:1870,44'
          Dst:             freerdp_addin_argv_clone
        - Src:             'libfreerdp/common/settings.c:1873,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1882,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1888,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1894,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1900,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1906,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1936,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1942,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1948,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1963,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1969,53'
          Dst:             _strdup
        - Src:             'libfreerdp/common/settings.c:1973,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1976,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:1980,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1983,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:1987,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings.c:1987,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:1992,2'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings.c:1992,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_device_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 483
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          163
      EdgeCount:       41
      CyclomaticComplexity: 9
      functionsReached:
        - freerdp_device_new
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:478,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:478,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:478,6'
          Dst:             freerdp_device_new
    - functionName:    freerdp_addin_argv_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 710
      functionLinenumberEnd: 722
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          66
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_addin_argv_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 760
      functionLinenumberEnd: 770
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          105
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - freerdp_addin_argv_new
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:769,32'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:769,32'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:769,9'
          Dst:             freerdp_addin_argv_new
    - 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:    27
      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:    freerdp_addin_argv_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 725
      functionLinenumberEnd: 757
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          123
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - _strdup
        - calloc
        - freerdp_addin_argv_free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:729,21'
          Dst:             calloc
        - Src:             'libfreerdp/common/settings.c:736,23'
          Dst:             calloc
        - Src:             'libfreerdp/common/settings.c:744,20'
          Dst:             _strdup
        - Src:             'libfreerdp/common/settings.c:754,2'
          Dst:             freerdp_addin_argv_free
    - functionName:    caps_data_entry_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3930
      functionLinenumberEnd: 3960
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          119
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_IsArray
        - __errno_location
        - calloc
        - freerdp_settings_set_pointer_array
        - uint_from_json_item
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3931,16'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:3934,22'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:3937,10'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/common/settings.c:3941,18'
          Dst:             calloc
        - Src:             'libfreerdp/common/settings.c:3945,7'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/common/settings.c:3951,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3954,22'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:3955,22'
          Dst:             uint_from_json_item
        - Src:             'libfreerdp/common/settings.c:3959,9'
          Dst:             __errno_location
    - functionName:    channel_def_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3168
      functionLinenumberEnd: 3192
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          119
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_GetStringValue
        - WINPR_JSON_IsObject
        - WINPR_JSON_IsString
        - __errno_location
        - strncpy
        - strnlen
        - uint_from_json
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3169,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:3170,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:3172,7'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:3175,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3176,30'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:3177,6'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3180,21'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:3181,16'
          Dst:             WINPR_JSON_IsString
        - Src:             'libfreerdp/common/settings.c:3184,20'
          Dst:             WINPR_JSON_GetStringValue
        - Src:             'libfreerdp/common/settings.c:3189,30'
          Dst:             strnlen
        - Src:             'libfreerdp/common/settings.c:3189,3'
          Dst:             strncpy
    - functionName:    monitor_attributes_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3215
      functionLinenumberEnd: 3232
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          111
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_IsObject
        - __errno_location
        - uint_from_json
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3216,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:3217,16'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:3220,20'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:3221,15'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:3224,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3225,40'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:3226,41'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:3227,38'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:3229,16'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:3230,44'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:3231,9'
          Dst:             __errno_location
    - functionName:    monitor_def_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3235
      functionLinenumberEnd: 3258
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          129
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_IsBool
        - WINPR_JSON_IsObject
        - WINPR_JSON_IsTrue
        - __errno_location
        - int_from_json
        - monitor_attributes_from_json
        - uint_from_json
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3236,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:3238,16'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:3241,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3242,24'
          Dst:             int_from_json
        - Src:             'libfreerdp/common/settings.c:3243,24'
          Dst:             int_from_json
        - Src:             'libfreerdp/common/settings.c:3244,28'
          Dst:             int_from_json
        - Src:             'libfreerdp/common/settings.c:3245,29'
          Dst:             int_from_json
        - Src:             'libfreerdp/common/settings.c:3246,35'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:3247,6'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3250,21'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:3253,7'
          Dst:             WINPR_JSON_IsBool
        - Src:             'libfreerdp/common/settings.c:3255,24'
          Dst:             WINPR_JSON_IsTrue
        - Src:             'libfreerdp/common/settings.c:3257,9'
          Dst:             monitor_attributes_from_json
    - functionName:    int_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2772
      functionLinenumberEnd: 2780
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_IsObject
        - __errno_location
        - int_from_json_item
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2773,15'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:2775,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:2778,21'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:2779,9'
          Dst:             int_from_json_item
    - functionName:    server_cookie_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3117
      functionLinenumberEnd: 3145
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          153
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_IsArray
        - WINPR_JSON_IsObject
        - __errno_location
        - uint_from_json
        - uint_from_json_item
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3118,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:3120,16'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:3123,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3124,28'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:3125,30'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:3126,30'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:3127,6'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3130,21'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:3131,16'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:3134,21'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:3138,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3141,23'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:3142,39'
          Dst:             uint_from_json_item
        - Src:             'libfreerdp/common/settings.c:3144,9'
          Dst:             __errno_location
    - functionName:    client_cookie_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3064
      functionLinenumberEnd: 3094
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          160
      EdgeCount:       37
      CyclomaticComplexity: 8
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_IsArray
        - WINPR_JSON_IsObject
        - __errno_location
        - uint_from_json
        - uint_from_json_item
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3065,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:3066,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:3068,7'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:3071,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3072,28'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:3073,30'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:3074,30'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:3075,6'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3078,21'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:3079,16'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:3082,21'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:3086,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3089,23'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:3090,24'
          Dst:             uint_from_json_item
        - Src:             'libfreerdp/common/settings.c:3093,9'
          Dst:             __errno_location
    - functionName:    bitmap_cache_v2_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3023
      functionLinenumberEnd: 3040
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          97
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_IsBool
        - WINPR_JSON_IsObject
        - WINPR_JSON_IsTrue
        - __errno_location
        - uint_from_json
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3024,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:3026,16'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:3029,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3030,31'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:3031,6'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3034,21'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:3035,16'
          Dst:             WINPR_JSON_IsBool
        - Src:             'libfreerdp/common/settings.c:3038,21'
          Dst:             WINPR_JSON_IsTrue
    - functionName:    glyph_cache_def_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2988
      functionLinenumberEnd: 2999
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WINPR_JSON_IsObject
        - __errno_location
        - uint_from_json
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2989,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2990,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2992,7'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:2995,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:2996,32'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:2997,40'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:2998,9'
          Dst:             __errno_location
    - functionName:    wchar_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2728
      functionLinenumberEnd: 2744
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          93
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertUtf8ToWChar
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_GetStringValue
        - WINPR_JSON_IsObject
        - WINPR_JSON_IsString
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2729,15'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:2731,21'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:2732,16'
          Dst:             WINPR_JSON_IsString
        - Src:             'libfreerdp/common/settings.c:2735,20'
          Dst:             WINPR_JSON_GetStringValue
        - Src:             'libfreerdp/common/settings.c:2742,15'
          Dst:             ConvertUtf8ToWChar
    - functionName:    systemtime_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2850
      functionLinenumberEnd: 2870
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          132
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_IsObject
        - __errno_location
        - uint_from_json
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2851,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2853,16'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:2856,20'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:2857,15'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:2860,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:2861,24'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:2862,25'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:2863,29'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:2864,23'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:2865,24'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:2866,26'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:2867,26'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:2868,32'
          Dst:             uint_from_json
        - Src:             'libfreerdp/common/settings.c:2869,9'
          Dst:             __errno_location
    - functionName:    ts_info_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2873
      functionLinenumberEnd: 2897
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          132
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - WINPR_JSON_IsObject
        - __errno_location
        - int_from_json
        - systemtime_from_json
        - wchar_from_json
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2874,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2876,16'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:2879,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:2880,22'
          Dst:             int_from_json
        - Src:             'libfreerdp/common/settings.c:2881,30'
          Dst:             int_from_json
        - Src:             'libfreerdp/common/settings.c:2882,30'
          Dst:             int_from_json
        - Src:             'libfreerdp/common/settings.c:2883,6'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:2886,7'
          Dst:             systemtime_from_json
        - Src:             'libfreerdp/common/settings.c:2888,7'
          Dst:             systemtime_from_json
        - Src:             'libfreerdp/common/settings.c:2891,7'
          Dst:             wchar_from_json
        - Src:             'libfreerdp/common/settings.c:2893,7'
          Dst:             wchar_from_json
    - functionName:    addin_argv_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4009
      functionLinenumberEnd: 4066
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          273
      EdgeCount:       69
      CyclomaticComplexity: 21
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_GetStringValue
        - WINPR_JSON_IsArray
        - WINPR_JSON_IsNull
        - WINPR_JSON_IsNumber
        - WINPR_JSON_IsObject
        - WINPR_JSON_IsString
        - __errno_location
        - calloc
        - freerdp_addin_argv_free
        - freerdp_addin_argv_new
        - freerdp_settings_set_pointer
        - freerdp_settings_set_pointer_array
        - freerdp_settings_set_pointer_len
        - int_from_json_item
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4010,6'
          Dst:             WINPR_JSON_IsNull
        - Src:             'libfreerdp/common/settings.c:4011,10'
          Dst:             freerdp_settings_set_pointer
        - Src:             'libfreerdp/common/settings.c:4013,7'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:4016,15'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:4017,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:4022,21'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:4023,14'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/common/settings.c:4025,24'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4026,24'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4029,9'
          Dst:             WINPR_JSON_IsNumber
        - Src:             'libfreerdp/common/settings.c:4029,40'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:4032,26'
          Dst:             int_from_json_item
        - Src:             'libfreerdp/common/settings.c:4033,8'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:4035,24'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:4041,38'
          Dst:             calloc
        - Src:             'libfreerdp/common/settings.c:4046,24'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:4047,19'
          Dst:             WINPR_JSON_IsString
        - Src:             'libfreerdp/common/settings.c:4052,15'
          Dst:             WINPR_JSON_GetStringValue
        - Src:             'libfreerdp/common/settings.c:4055,23'
          Dst:             freerdp_addin_argv_new
        - Src:             'libfreerdp/common/settings.c:4059,20'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/common/settings.c:4060,4'
          Dst:             freerdp_addin_argv_free
    - functionName:    freerdp_settings_set_pointer_len
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1428
      functionLinenumberEnd: 1646
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         141
      ICount:          777
      EdgeCount:       181
      CyclomaticComplexity: 42
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_capability_buffer_resize
        - freerdp_capability_data_free
        - freerdp_certificate_free
        - freerdp_certificate_new
        - freerdp_device_collection_free
        - freerdp_dynamic_channel_collection_free
        - freerdp_key_free
        - freerdp_key_new
        - freerdp_server_license_issuers_free
        - freerdp_settings_set_pointer
        - freerdp_settings_set_pointer_len_
        - freerdp_static_channel_collection_free
        - freerdp_target_net_addresses_resize
        - target_net_addresses_free
      functionUses:    58
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:1439,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:1444,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:1450,4'
          Dst:             freerdp_certificate_free
        - Src:             'libfreerdp/common/settings.c:1454,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:1460,38'
          Dst:             freerdp_certificate_new
        - Src:             'libfreerdp/common/settings.c:1466,4'
          Dst:             freerdp_key_free
        - Src:             'libfreerdp/common/settings.c:1469,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:1475,33'
          Dst:             freerdp_key_new
        - Src:             'libfreerdp/common/settings.c:1481,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1484,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1487,4'
          Dst:             freerdp_certificate_free
        - Src:             'libfreerdp/common/settings.c:1491,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:1497,46'
          Dst:             freerdp_certificate_new
        - Src:             'libfreerdp/common/settings.c:1503,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1506,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1509,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1512,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1515,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1518,9'
          Dst:             freerdp_target_net_addresses_resize
        - Src:             'libfreerdp/common/settings.c:1521,5'
          Dst:             target_net_addresses_free
        - Src:             'libfreerdp/common/settings.c:1525,5'
          Dst:             freerdp_server_license_issuers_free
        - Src:             'libfreerdp/common/settings.c:1526,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1529,9'
          Dst:             freerdp_target_net_addresses_resize
        - Src:             'libfreerdp/common/settings.c:1539,5'
          Dst:             freerdp_device_collection_free
        - Src:             'libfreerdp/common/settings.c:1540,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1544,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:1547,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1551,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1554,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1557,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1562,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:1565,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1568,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1573,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:1576,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1581,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:1584,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1588,5'
          Dst:             freerdp_static_channel_collection_free
        - Src:             'libfreerdp/common/settings.c:1589,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1593,5'
          Dst:             freerdp_dynamic_channel_collection_free
        - Src:             'libfreerdp/common/settings.c:1594,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1597,9'
          Dst:             freerdp_capability_buffer_resize
        - Src:             'libfreerdp/common/settings.c:1601,5'
          Dst:             freerdp_capability_data_free
        - Src:             'libfreerdp/common/settings.c:1605,9'
          Dst:             freerdp_capability_buffer_resize
        - Src:             'libfreerdp/common/settings.c:1616,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1620,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1624,9'
          Dst:             freerdp_capability_buffer_resize
        - Src:             'libfreerdp/common/settings.c:1634,11'
          Dst:             freerdp_settings_set_pointer_len_
        - Src:             'libfreerdp/common/settings.c:1639,10'
          Dst:             freerdp_settings_set_pointer
        - Src:             'libfreerdp/common/settings.c:1643,5'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_settings_set_pointer_len_
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1378
      functionLinenumberEnd: 1412
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          152
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - calloc
        - freerdp_settings_get_pointer_writable
        - freerdp_settings_set_pointer
        - freerdp_settings_set_uint32
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:1381,14'
          Dst:             freerdp_settings_get_pointer_writable
        - Src:             'libfreerdp/common/settings.c:1383,7'
          Dst:             freerdp_settings_set_pointer
        - Src:             'libfreerdp/common/settings.c:1387,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings.c:1395,9'
          Dst:             calloc
        - Src:             'libfreerdp/common/settings.c:1400,7'
          Dst:             freerdp_settings_set_pointer
        - Src:             'libfreerdp/common/settings.c:1411,9'
          Dst:             freerdp_settings_set_uint32
    - functionName:    freerdp_target_net_addresses_resize
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 976
      functionLinenumberEnd: 993
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          151
      EdgeCount:       43
      CyclomaticComplexity: 8
      functionsReached:
        - freerdp_target_net_addresses_free
        - resize_setting
        - resize_setting_ptr
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:977,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:981,3'
          Dst:             freerdp_target_net_addresses_free
        - Src:             'libfreerdp/common/settings.c:986,7'
          Dst:             resize_setting_ptr
        - Src:             'libfreerdp/common/settings.c:988,7'
          Dst:             resize_setting
        - Src:             'libfreerdp/common/settings.c:991,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:991,36'
          Dst:             winpr_int_assert
    - functionName:    target_net_addresses_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 947
      functionLinenumberEnd: 958
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          73
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:948,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_server_license_issuers_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 996
      functionLinenumberEnd: 1007
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          74
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:997,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_device_collection_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          122
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_set_pointer
        - freerdp_settings_set_pointer_array
        - freerdp_settings_set_uint32
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:487,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:494,8'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/common/settings.c:496,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:505,7'
          Dst:             freerdp_settings_set_pointer
        - Src:             'libfreerdp/common/settings.c:506,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:508,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings.c:509,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:510,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings.c:511,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_static_channel_collection_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 624
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          93
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_addin_argv_free
        - freerdp_settings_get_uint32
        - freerdp_settings_set_uint32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:612,12'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:613,4'
          Dst:             freerdp_addin_argv_free
        - Src:             'libfreerdp/common/settings.c:617,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings.c:618,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:621,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings.c:622,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_dynamic_channel_collection_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 773
      functionLinenumberEnd: 792
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          98
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_addin_argv_free
        - freerdp_settings_get_uint32
        - freerdp_settings_set_uint32
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:774,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:779,12'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:780,4'
          Dst:             freerdp_addin_argv_free
        - Src:             'libfreerdp/common/settings.c:784,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings.c:785,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:789,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings.c:790,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_capability_buffer_resize
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 876
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          195
      EdgeCount:       53
      CyclomaticComplexity: 11
      functionsReached:
        - freerdp_capability_buffer_free
        - freerdp_capability_data_free
        - resize_setting
        - resize_setting_ptr
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:877,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:886,2'
          Dst:             freerdp_capability_data_free
        - Src:             'libfreerdp/common/settings.c:890,3'
          Dst:             freerdp_capability_buffer_free
        - Src:             'libfreerdp/common/settings.c:895,7'
          Dst:             resize_setting
        - Src:             'libfreerdp/common/settings.c:898,7'
          Dst:             resize_setting_ptr
        - Src:             'libfreerdp/common/settings.c:901,7'
          Dst:             resize_setting
        - Src:             'libfreerdp/common/settings.c:904,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:904,39'
          Dst:             winpr_int_assert
    - functionName:    freerdp_capability_data_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 795
      functionLinenumberEnd: 811
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          91
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:796,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_capability_buffer_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 814
      functionLinenumberEnd: 826
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_capability_data_free
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:815,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:817,2'
          Dst:             freerdp_capability_data_free
    - functionName:    resize_setting
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 830
      functionLinenumberEnd: 844
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_settings_get_pointer_writable
        - freerdp_settings_set_pointer
        - realloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:831,14'
          Dst:             freerdp_settings_get_pointer_writable
        - Src:             'libfreerdp/common/settings.c:832,17'
          Dst:             realloc
        - Src:             'libfreerdp/common/settings.c:843,9'
          Dst:             freerdp_settings_set_pointer
    - functionName:    resize_setting_ptr
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 848
      functionLinenumberEnd: 873
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          142
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - freerdp_settings_get_pointer_writable
        - freerdp_settings_set_pointer
        - realloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:849,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:851,17'
          Dst:             freerdp_settings_get_pointer_writable
        - Src:             'libfreerdp/common/settings.c:861,17'
          Dst:             realloc
        - Src:             'libfreerdp/common/settings.c:872,9'
          Dst:             freerdp_settings_set_pointer
    - 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:    64
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_target_net_addresses_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 961
      functionLinenumberEnd: 973
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - target_net_addresses_free
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:962,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:964,2'
          Dst:             target_net_addresses_free
    - functionName:    device_array_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4167
      functionLinenumberEnd: 4185
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          97
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_IsArray
        - WINPR_JSON_IsNull
        - device_from_json_item
        - freerdp_settings_set_pointer
        - freerdp_settings_set_pointer_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4168,6'
          Dst:             WINPR_JSON_IsNull
        - Src:             'libfreerdp/common/settings.c:4169,10'
          Dst:             freerdp_settings_set_pointer
        - Src:             'libfreerdp/common/settings.c:4171,7'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:4174,15'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:4175,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:4180,21'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:4181,8'
          Dst:             device_from_json_item
    - functionName:    pem_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4188
      functionLinenumberEnd: 4215
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          118
      EdgeCount:       34
      CyclomaticComplexity: 6
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_GetStringValue
        - WINPR_JSON_IsNull
        - WINPR_JSON_IsString
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4189,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4190,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4191,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4196,6'
          Dst:             WINPR_JSON_IsNull
        - Src:             'libfreerdp/common/settings.c:4199,15'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:4206,21'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:4209,7'
          Dst:             WINPR_JSON_IsString
        - Src:             'libfreerdp/common/settings.c:4214,9'
          Dst:             WINPR_JSON_GetStringValue
    - functionName:    caps_data_array_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3963
      functionLinenumberEnd: 3978
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          91
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_IsArray
        - caps_data_entry_from_json
        - freerdp_settings_set_pointer_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3964,16'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:3967,23'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:3968,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:3973,23'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:3974,8'
          Dst:             caps_data_entry_from_json
    - functionName:    str_array_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3982
      functionLinenumberEnd: 4005
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          119
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_GetStringValue
        - WINPR_JSON_IsArray
        - WINPR_JSON_IsNull
        - WINPR_JSON_IsString
        - freerdp_settings_set_pointer_array
        - freerdp_settings_set_pointer_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3983,6'
          Dst:             WINPR_JSON_IsNull
        - Src:             'libfreerdp/common/settings.c:3984,10'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:3985,7'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:3988,15'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:3989,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:3994,22'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:3997,8'
          Dst:             WINPR_JSON_IsString
        - Src:             'libfreerdp/common/settings.c:4000,21'
          Dst:             WINPR_JSON_GetStringValue
        - Src:             'libfreerdp/common/settings.c:4001,8'
          Dst:             freerdp_settings_set_pointer_array
    - functionName:    val_from_uint32_array
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3903
      functionLinenumberEnd: 3927
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          137
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_IsArray
        - WINPR_JSON_IsNull
        - __errno_location
        - freerdp_settings_get_pointer_array_writable
        - freerdp_settings_get_uint32
        - freerdp_settings_set_pointer
        - freerdp_settings_set_pointer_len
        - uint_from_json_item
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3904,6'
          Dst:             WINPR_JSON_IsNull
        - Src:             'libfreerdp/common/settings.c:3905,10'
          Dst:             freerdp_settings_set_pointer
        - Src:             'libfreerdp/common/settings.c:3906,7'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:3909,21'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:3910,43'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3912,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:3916,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3919,18'
          Dst:             freerdp_settings_get_pointer_array_writable
        - Src:             'libfreerdp/common/settings.c:3923,21'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:3924,23'
          Dst:             uint_from_json_item
        - Src:             'libfreerdp/common/settings.c:3926,9'
          Dst:             __errno_location
    - functionName:    freerdp_settings_get_pointer_array_writable
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1650
      functionLinenumberEnd: 1808
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         119
      ICount:          725
      EdgeCount:       148
      CyclomaticComplexity: 31
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    13
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:1654,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:1667,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1672,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1677,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1682,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1688,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1694,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1705,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1710,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1715,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1720,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1725,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1730,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1745,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1750,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1755,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1758,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:1761,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1764,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:1782,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1787,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1790,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:1794,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1797,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:1800,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings.c:1800,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:1805,2'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings.c:1805,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    channel_def_array_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3196
      functionLinenumberEnd: 3212
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_IsArray
        - channel_def_from_json
        - freerdp_settings_get_pointer_array_writable
        - freerdp_settings_set_pointer_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3197,16'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:3200,23'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:3201,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:3206,24'
          Dst:             freerdp_settings_get_pointer_array_writable
        - Src:             'libfreerdp/common/settings.c:3207,21'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:3208,8'
          Dst:             channel_def_from_json
    - functionName:    monitor_def_array_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3262
      functionLinenumberEnd: 3278
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_IsArray
        - freerdp_settings_get_pointer_array_writable
        - freerdp_settings_set_pointer_len
        - monitor_def_from_json
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3263,16'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:3266,23'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:3267,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:3272,23'
          Dst:             freerdp_settings_get_pointer_array_writable
        - Src:             'libfreerdp/common/settings.c:3273,21'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:3274,8'
          Dst:             monitor_def_from_json
    - functionName:    server_cookie_array_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3149
      functionLinenumberEnd: 3165
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_IsArray
        - freerdp_settings_get_pointer_array_writable
        - freerdp_settings_set_pointer_len
        - server_cookie_from_json
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3150,16'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:3153,23'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:3154,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:3159,34'
          Dst:             freerdp_settings_get_pointer_array_writable
        - Src:             'libfreerdp/common/settings.c:3160,21'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:3161,8'
          Dst:             server_cookie_from_json
    - functionName:    client_cookie_array_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3098
      functionLinenumberEnd: 3114
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_IsArray
        - client_cookie_from_json
        - freerdp_settings_get_pointer_array_writable
        - freerdp_settings_set_pointer_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3099,16'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:3102,23'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:3103,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:3108,34'
          Dst:             freerdp_settings_get_pointer_array_writable
        - Src:             'libfreerdp/common/settings.c:3109,21'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:3110,8'
          Dst:             client_cookie_from_json
    - functionName:    bitmap_cache_v2_array_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3044
      functionLinenumberEnd: 3061
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_IsArray
        - bitmap_cache_v2_from_json
        - freerdp_settings_get_pointer_array_writable
        - freerdp_settings_set_pointer_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3045,16'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:3048,23'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:3049,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:3055,7'
          Dst:             freerdp_settings_get_pointer_array_writable
        - Src:             'libfreerdp/common/settings.c:3056,21'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:3057,8'
          Dst:             bitmap_cache_v2_from_json
    - functionName:    glyph_cache_def_array_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3003
      functionLinenumberEnd: 3020
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_IsArray
        - freerdp_settings_get_pointer_array_writable
        - freerdp_settings_set_pointer_len
        - glyph_cache_def_from_json
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3004,16'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:3007,23'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:3008,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:3014,7'
          Dst:             freerdp_settings_get_pointer_array_writable
        - Src:             'libfreerdp/common/settings.c:3015,21'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:3016,8'
          Dst:             glyph_cache_def_from_json
    - functionName:    ts_info_array_from_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2901
      functionLinenumberEnd: 2917
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_IsArray
        - freerdp_settings_get_pointer_array_writable
        - freerdp_settings_set_pointer_len
        - ts_info_from_json
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2902,16'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:2905,23'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:2906,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:2911,31'
          Dst:             freerdp_settings_get_pointer_array_writable
        - Src:             'libfreerdp/common/settings.c:2912,21'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:2913,8'
          Dst:             ts_info_from_json
    - functionName:    val_from_array
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3839
      functionLinenumberEnd: 3868
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          142
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_IsArray
        - WINPR_JSON_IsNull
        - __errno_location
        - freerdp_settings_get_pointer_writable
        - freerdp_settings_set_pointer
        - freerdp_settings_set_pointer_len
        - uint_from_json_item
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3840,6'
          Dst:             WINPR_JSON_IsNull
        - Src:             'libfreerdp/common/settings.c:3841,10'
          Dst:             freerdp_settings_set_pointer
        - Src:             'libfreerdp/common/settings.c:3842,7'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:3845,15'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:3847,10'
          Dst:             freerdp_settings_set_pointer
        - Src:             'libfreerdp/common/settings.c:3853,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:3856,15'
          Dst:             freerdp_settings_get_pointer_writable
        - Src:             'libfreerdp/common/settings.c:3860,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3863,21'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:3864,22'
          Dst:             uint_from_json_item
        - Src:             'libfreerdp/common/settings.c:3867,9'
          Dst:             __errno_location
    - functionName:    uintptr_from_array
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3871
      functionLinenumberEnd: 3898
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          111
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_IsArray
        - __errno_location
        - freerdp_settings_set_pointer
        - uint_from_json_item
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3873,16'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:3876,15'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/common/settings.c:3881,10'
          Dst:             freerdp_settings_set_pointer
        - Src:             'libfreerdp/common/settings.c:3889,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3892,21'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/common/settings.c:3893,23'
          Dst:             uint_from_json_item
        - Src:             'libfreerdp/common/settings.c:3895,6'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:3897,9'
          Dst:             freerdp_settings_set_pointer
    - functionName:    json_from_addin_item
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2550
      functionLinenumberEnd: 2586
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          121
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - WINPR_JSON_AddArrayToObject
        - WINPR_JSON_AddItemToArray
        - WINPR_JSON_AddNumberToObject
        - WINPR_JSON_CreateNull
        - WINPR_JSON_CreateObject
        - WINPR_JSON_CreateString
        - WINPR_JSON_Delete
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2551,20'
          Dst:             WINPR_JSON_CreateObject
        - Src:             'libfreerdp/common/settings.c:2557,8'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:2560,23'
          Dst:             WINPR_JSON_AddArrayToObject
        - Src:             'libfreerdp/common/settings.c:2570,12'
          Dst:             WINPR_JSON_CreateNull
        - Src:             'libfreerdp/common/settings.c:2574,12'
          Dst:             WINPR_JSON_CreateString
        - Src:             'libfreerdp/common/settings.c:2577,9'
          Dst:             WINPR_JSON_AddItemToArray
        - Src:             'libfreerdp/common/settings.c:2584,2'
          Dst:             WINPR_JSON_Delete
    - functionName:    add_string_or_null
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2604
      functionLinenumberEnd: 2609
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WINPR_JSON_AddNullToObject
        - WINPR_JSON_AddStringToObject
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2606,10'
          Dst:             WINPR_JSON_AddStringToObject
        - Src:             'libfreerdp/common/settings.c:2608,9'
          Dst:             WINPR_JSON_AddNullToObject
    - functionName:    json_from_device_item
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2612
      functionLinenumberEnd: 2674
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          204
      EdgeCount:       52
      CyclomaticComplexity: 14
      functionsReached:
        - WINPR_JSON_AddBoolToObject
        - WINPR_JSON_AddNumberToObject
        - WINPR_JSON_CreateObject
        - WINPR_JSON_Delete
        - add_string_or_null
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:2638,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2613,20'
          Dst:             WINPR_JSON_CreateObject
        - Src:             'libfreerdp/common/settings.c:2632,8'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:2634,8'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:2636,8'
          Dst:             add_string_or_null
        - Src:             'libfreerdp/common/settings.c:2641,10'
          Dst:             add_string_or_null
        - Src:             'libfreerdp/common/settings.c:2643,10'
          Dst:             add_string_or_null
        - Src:             'libfreerdp/common/settings.c:2645,10'
          Dst:             add_string_or_null
        - Src:             'libfreerdp/common/settings.c:2649,10'
          Dst:             add_string_or_null
        - Src:             'libfreerdp/common/settings.c:2653,10'
          Dst:             add_string_or_null
        - Src:             'libfreerdp/common/settings.c:2655,10'
          Dst:             WINPR_JSON_AddBoolToObject
        - Src:             'libfreerdp/common/settings.c:2659,10'
          Dst:             add_string_or_null
        - Src:             'libfreerdp/common/settings.c:2661,10'
          Dst:             WINPR_JSON_AddBoolToObject
        - Src:             'libfreerdp/common/settings.c:2672,2'
          Dst:             WINPR_JSON_Delete
    - functionName:    channel_def_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3440
      functionLinenumberEnd: 3453
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          81
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - WINPR_JSON_AddItemToArray
        - WINPR_JSON_AddNumberToObject
        - WINPR_JSON_AddStringToObject
        - WINPR_JSON_CreateObject
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3441,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:3442,20'
          Dst:             WINPR_JSON_CreateObject
        - Src:             'libfreerdp/common/settings.c:3445,7'
          Dst:             WINPR_JSON_AddItemToArray
        - Src:             'libfreerdp/common/settings.c:3448,7'
          Dst:             WINPR_JSON_AddStringToObject
        - Src:             'libfreerdp/common/settings.c:3450,7'
          Dst:             WINPR_JSON_AddNumberToObject
    - functionName:    monitor_attributes_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3387
      functionLinenumberEnd: 3403
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          111
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - WINPR_JSON_AddNumberToObject
        - WINPR_JSON_AddObjectToObject
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3388,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:3389,20'
          Dst:             WINPR_JSON_AddObjectToObject
        - Src:             'libfreerdp/common/settings.c:3392,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3394,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3396,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3398,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3400,7'
          Dst:             WINPR_JSON_AddNumberToObject
    - functionName:    monitor_def_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3406
      functionLinenumberEnd: 3427
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          140
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - WINPR_JSON_AddBoolToObject
        - WINPR_JSON_AddItemToArray
        - WINPR_JSON_AddNumberToObject
        - WINPR_JSON_CreateObject
        - monitor_attributes_to_json
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3407,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:3408,20'
          Dst:             WINPR_JSON_CreateObject
        - Src:             'libfreerdp/common/settings.c:3411,7'
          Dst:             WINPR_JSON_AddItemToArray
        - Src:             'libfreerdp/common/settings.c:3414,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3416,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3418,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3420,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3422,7'
          Dst:             WINPR_JSON_AddBoolToObject
        - Src:             'libfreerdp/common/settings.c:3424,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3426,9'
          Dst:             monitor_attributes_to_json
    - functionName:    server_cookie_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3321
      functionLinenumberEnd: 3347
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          138
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - WINPR_JSON_AddArrayToObject
        - WINPR_JSON_AddItemToArray
        - WINPR_JSON_AddNumberToObject
        - WINPR_JSON_CreateNumber
        - WINPR_JSON_CreateObject
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3322,20'
          Dst:             WINPR_JSON_CreateObject
        - Src:             'libfreerdp/common/settings.c:3325,7'
          Dst:             WINPR_JSON_AddItemToArray
        - Src:             'libfreerdp/common/settings.c:3328,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3330,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3332,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3334,22'
          Dst:             WINPR_JSON_AddArrayToObject
        - Src:             'libfreerdp/common/settings.c:3340,22'
          Dst:             WINPR_JSON_CreateNumber
        - Src:             'libfreerdp/common/settings.c:3343,8'
          Dst:             WINPR_JSON_AddItemToArray
    - functionName:    client_cookie_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3281
      functionLinenumberEnd: 3307
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          138
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - WINPR_JSON_AddArrayToObject
        - WINPR_JSON_AddItemToArray
        - WINPR_JSON_AddNumberToObject
        - WINPR_JSON_CreateNumber
        - WINPR_JSON_CreateObject
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3282,20'
          Dst:             WINPR_JSON_CreateObject
        - Src:             'libfreerdp/common/settings.c:3285,7'
          Dst:             WINPR_JSON_AddItemToArray
        - Src:             'libfreerdp/common/settings.c:3288,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3290,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3292,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3294,22'
          Dst:             WINPR_JSON_AddArrayToObject
        - Src:             'libfreerdp/common/settings.c:3300,22'
          Dst:             WINPR_JSON_CreateNumber
        - Src:             'libfreerdp/common/settings.c:3303,8'
          Dst:             WINPR_JSON_AddItemToArray
    - functionName:    bitmap_cache_v2_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3361
      functionLinenumberEnd: 3373
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - WINPR_JSON_AddBoolToObject
        - WINPR_JSON_AddItemToArray
        - WINPR_JSON_AddNumberToObject
        - WINPR_JSON_CreateObject
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3362,20'
          Dst:             WINPR_JSON_CreateObject
        - Src:             'libfreerdp/common/settings.c:3365,7'
          Dst:             WINPR_JSON_AddItemToArray
        - Src:             'libfreerdp/common/settings.c:3368,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3370,7'
          Dst:             WINPR_JSON_AddBoolToObject
    - functionName:    glyph_cache_def_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2955
      functionLinenumberEnd: 2971
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          100
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - WINPR_JSON_AddItemToArray
        - WINPR_JSON_AddNumberToObject
        - WINPR_JSON_CreateObject
        - WINPR_JSON_IsArray
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2956,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2957,16'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:2960,20'
          Dst:             WINPR_JSON_CreateObject
        - Src:             'libfreerdp/common/settings.c:2963,7'
          Dst:             WINPR_JSON_AddItemToArray
        - Src:             'libfreerdp/common/settings.c:2966,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:2968,7'
          Dst:             WINPR_JSON_AddNumberToObject
    - functionName:    systemtime_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2819
      functionLinenumberEnd: 2847
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          150
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - WINPR_JSON_AddNumberToObject
        - WINPR_JSON_AddObjectToObject
        - WINPR_JSON_Delete
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2820,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2822,20'
          Dst:             WINPR_JSON_AddObjectToObject
        - Src:             'libfreerdp/common/settings.c:2826,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:2828,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:2830,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:2832,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:2834,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:2836,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:2838,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:2840,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:2845,2'
          Dst:             WINPR_JSON_Delete
    - functionName:    wchar_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2710
      functionLinenumberEnd: 2725
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          84
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertWCharNToUtf8
        - WINPR_JSON_AddStringToObject
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2712,10'
          Dst:             WINPR_JSON_AddStringToObject
        - Src:             'libfreerdp/common/settings.c:2715,14'
          Dst:             calloc
        - Src:             'libfreerdp/common/settings.c:2720,15'
          Dst:             ConvertWCharNToUtf8
        - Src:             'libfreerdp/common/settings.c:2722,10'
          Dst:             WINPR_JSON_AddStringToObject
    - functionName:    json_from_addin_item_array
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2590
      functionLinenumberEnd: 2601
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WINPR_JSON_AddItemToArray
        - freerdp_settings_get_pointer_array
        - json_from_addin_item
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2596,28'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/common/settings.c:2597,40'
          Dst:             json_from_addin_item
        - Src:             'libfreerdp/common/settings.c:2597,8'
          Dst:             WINPR_JSON_AddItemToArray
    - functionName:    freerdp_settings_get_pointer_array
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1999
      functionLinenumberEnd: 2000
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_settings_get_pointer_array_writable
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2000,9'
          Dst:             freerdp_settings_get_pointer_array_writable
    - functionName:    json_from_device_item_array
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2678
      functionLinenumberEnd: 2689
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WINPR_JSON_AddItemToArray
        - freerdp_settings_get_pointer_array
        - json_from_device_item
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2684,30'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/common/settings.c:2685,40'
          Dst:             json_from_device_item
        - Src:             'libfreerdp/common/settings.c:2685,8'
          Dst:             WINPR_JSON_AddItemToArray
    - functionName:    channel_def_array_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3456
      functionLinenumberEnd: 3463
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - channel_def_to_json
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3459,8'
          Dst:             channel_def_to_json
    - functionName:    monitor_def_array_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3430
      functionLinenumberEnd: 3437
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - monitor_def_to_json
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3433,8'
          Dst:             monitor_def_to_json
    - functionName:    fill_uint32_array
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2539
      functionLinenumberEnd: 2547
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          59
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - WINPR_JSON_AddItemToArray
        - WINPR_JSON_CreateNumber
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2543,41'
          Dst:             WINPR_JSON_CreateNumber
        - Src:             'libfreerdp/common/settings.c:2543,8'
          Dst:             WINPR_JSON_AddItemToArray
    - functionName:    server_cookie_array_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3351
      functionLinenumberEnd: 3358
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - server_cookie_to_json
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3354,8'
          Dst:             server_cookie_to_json
    - functionName:    client_cookie_array_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3311
      functionLinenumberEnd: 3318
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - client_cookie_to_json
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3314,8'
          Dst:             client_cookie_to_json
    - functionName:    bitmap_cache_v2_array_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3377
      functionLinenumberEnd: 3384
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - bitmap_cache_v2_to_json
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3380,8'
          Dst:             bitmap_cache_v2_to_json
    - functionName:    glyph_cache_def_array_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2975
      functionLinenumberEnd: 2985
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          71
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - WINPR_JSON_IsArray
        - glyph_cache_def_to_json
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2976,16'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:2981,8'
          Dst:             glyph_cache_def_to_json
    - functionName:    tz_info_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2920
      functionLinenumberEnd: 2952
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          139
      EdgeCount:       35
      CyclomaticComplexity: 12
      functionsReached:
        - WINPR_JSON_AddItemToArray
        - WINPR_JSON_AddNumberToObject
        - WINPR_JSON_CreateObject
        - systemtime_to_json
        - wchar_to_json
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2921,20'
          Dst:             WINPR_JSON_CreateObject
        - Src:             'libfreerdp/common/settings.c:2924,7'
          Dst:             WINPR_JSON_AddItemToArray
        - Src:             'libfreerdp/common/settings.c:2931,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:2934,7'
          Dst:             wchar_to_json
        - Src:             'libfreerdp/common/settings.c:2937,7'
          Dst:             systemtime_to_json
        - Src:             'libfreerdp/common/settings.c:2940,7'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:2943,7'
          Dst:             wchar_to_json
        - Src:             'libfreerdp/common/settings.c:2946,7'
          Dst:             systemtime_to_json
        - Src:             'libfreerdp/common/settings.c:2949,7'
          Dst:             WINPR_JSON_AddNumberToObject
    - functionName:    string_array_to_json
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2693
      functionLinenumberEnd: 2707
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          78
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - WINPR_JSON_AddItemToArray
        - WINPR_JSON_CreateNull
        - WINPR_JSON_CreateString
        - freerdp_settings_get_pointer_array
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2696,22'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/common/settings.c:2700,11'
          Dst:             WINPR_JSON_CreateNull
        - Src:             'libfreerdp/common/settings.c:2702,11'
          Dst:             WINPR_JSON_CreateString
        - Src:             'libfreerdp/common/settings.c:2703,8'
          Dst:             WINPR_JSON_AddItemToArray
    - functionName:    fill_array
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2527
      functionLinenumberEnd: 2536
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - WINPR_JSON_AddItemToArray
        - WINPR_JSON_CreateNumber
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2532,41'
          Dst:             WINPR_JSON_CreateNumber
        - Src:             'libfreerdp/common/settings.c:2532,8'
          Dst:             WINPR_JSON_AddItemToArray
    - functionName:    freerdp_device_get_args
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4663
      functionLinenumberEnd: 4674
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    settings_json_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4499
      functionLinenumberEnd: 4522
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          148
      EdgeCount:       44
      CyclomaticComplexity: 10
      functionsReached:
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_GetStringValue
        - WINPR_JSON_IsNull
        - WINPR_JSON_IsString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_set_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4501,21'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4502,15'
          Dst:             WINPR_JSON_IsNull
        - Src:             'libfreerdp/common/settings.c:4504,8'
          Dst:             WINPR_JSON_IsString
        - Src:             'libfreerdp/common/settings.c:4506,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4506,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings.c:4509,9'
          Dst:             WINPR_JSON_GetStringValue
        - Src:             'libfreerdp/common/settings.c:4512,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4512,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings.c:4516,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/common/settings.c:4518,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4518,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    settings_json_int64
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4485
      functionLinenumberEnd: 4495
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          74
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_set_int64
        - settings_json_get_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4487,7'
          Dst:             settings_json_get_int
        - Src:             'libfreerdp/common/settings.c:4489,7'
          Dst:             freerdp_settings_set_int64
        - Src:             'libfreerdp/common/settings.c:4491,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4491,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    settings_json_uint64
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4471
      functionLinenumberEnd: 4481
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          74
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_set_uint64
        - settings_json_get_uint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4473,7'
          Dst:             settings_json_get_uint
        - Src:             'libfreerdp/common/settings.c:4475,7'
          Dst:             freerdp_settings_set_uint64
        - Src:             'libfreerdp/common/settings.c:4477,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4477,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    settings_json_int32
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4457
      functionLinenumberEnd: 4467
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          145
      EdgeCount:       42
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_set_int32
        - settings_json_get_int
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4459,7'
          Dst:             settings_json_get_int
        - Src:             'libfreerdp/common/settings.c:4461,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4461,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4461,7'
          Dst:             freerdp_settings_set_int32
        - Src:             'libfreerdp/common/settings.c:4463,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4463,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    settings_json_uint32
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4443
      functionLinenumberEnd: 4453
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          145
      EdgeCount:       42
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_set_uint32
        - settings_json_get_uint
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4445,7'
          Dst:             settings_json_get_uint
        - Src:             'libfreerdp/common/settings.c:4447,50'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4447,50'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4447,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings.c:4449,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4449,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    settings_json_int16
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4429
      functionLinenumberEnd: 4439
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          147
      EdgeCount:       42
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_set_int16
        - settings_json_get_int
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4431,7'
          Dst:             settings_json_get_int
        - Src:             'libfreerdp/common/settings.c:4433,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4433,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4433,7'
          Dst:             freerdp_settings_set_int16
        - Src:             'libfreerdp/common/settings.c:4435,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4435,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    settings_json_uint16
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4415
      functionLinenumberEnd: 4425
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          147
      EdgeCount:       42
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_set_uint16
        - settings_json_get_uint
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4417,7'
          Dst:             settings_json_get_uint
        - Src:             'libfreerdp/common/settings.c:4419,50'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4419,50'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:4419,7'
          Dst:             freerdp_settings_set_uint16
        - Src:             'libfreerdp/common/settings.c:4421,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4421,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    settings_json_bool
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4395
      functionLinenumberEnd: 4411
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          108
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_IsBool
        - WINPR_JSON_IsTrue
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_set_bool
        - settings_json_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4396,21'
          Dst:             settings_json_get
        - Src:             'libfreerdp/common/settings.c:4399,7'
          Dst:             WINPR_JSON_IsBool
        - Src:             'libfreerdp/common/settings.c:4401,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4401,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings.c:4404,19'
          Dst:             WINPR_JSON_IsTrue
        - Src:             'libfreerdp/common/settings.c:4405,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:4407,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4407,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    deserialize_pointer
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4219
      functionLinenumberEnd: 4323
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          428
      EdgeCount:       82
      CyclomaticComplexity: 14
      functionsReached:
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_HasObjectItem
        - WINPR_JSON_IsArray
        - WINPR_JSON_IsNull
        - addin_argv_from_json
        - bitmap_cache_v2_array_from_json
        - caps_data_array_from_json
        - channel_def_array_from_json
        - client_cookie_array_from_json
        - device_array_from_json
        - freerdp_certificate_new
        - freerdp_certificate_new_from_pem
        - freerdp_key_new_from_pem_enc
        - freerdp_settings_get_name_for_key
        - freerdp_settings_set_pointer_len
        - glyph_cache_def_array_from_json
        - monitor_def_array_from_json
        - pem_from_json
        - server_cookie_array_from_json
        - str_array_from_json
        - strnlen
        - ts_info_array_from_json
        - uintptr_from_array
        - val_from_array
        - val_from_uint32_array
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:4231,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4220,21'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings.c:4224,7'
          Dst:             WINPR_JSON_HasObjectItem
        - Src:             'libfreerdp/common/settings.c:4227,21'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4228,7'
          Dst:             WINPR_JSON_IsNull
        - Src:             'libfreerdp/common/settings.c:4228,35'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/common/settings.c:4234,11'
          Dst:             uintptr_from_array
        - Src:             'libfreerdp/common/settings.c:4244,11'
          Dst:             val_from_array
        - Src:             'libfreerdp/common/settings.c:4246,11'
          Dst:             val_from_array
        - Src:             'libfreerdp/common/settings.c:4248,11'
          Dst:             ts_info_array_from_json
        - Src:             'libfreerdp/common/settings.c:4250,11'
          Dst:             glyph_cache_def_array_from_json
        - Src:             'libfreerdp/common/settings.c:4252,11'
          Dst:             glyph_cache_def_array_from_json
        - Src:             'libfreerdp/common/settings.c:4254,11'
          Dst:             bitmap_cache_v2_array_from_json
        - Src:             'libfreerdp/common/settings.c:4256,11'
          Dst:             client_cookie_array_from_json
        - Src:             'libfreerdp/common/settings.c:4258,11'
          Dst:             server_cookie_array_from_json
        - Src:             'libfreerdp/common/settings.c:4260,11'
          Dst:             monitor_def_array_from_json
        - Src:             'libfreerdp/common/settings.c:4262,11'
          Dst:             channel_def_array_from_json
        - Src:             'libfreerdp/common/settings.c:4264,11'
          Dst:             val_from_uint32_array
        - Src:             'libfreerdp/common/settings.c:4266,11'
          Dst:             val_from_uint32_array
        - Src:             'libfreerdp/common/settings.c:4269,11'
          Dst:             str_array_from_json
        - Src:             'libfreerdp/common/settings.c:4271,11'
          Dst:             val_from_uint32_array
        - Src:             'libfreerdp/common/settings.c:4273,11'
          Dst:             caps_data_array_from_json
        - Src:             'libfreerdp/common/settings.c:4279,22'
          Dst:             pem_from_json
        - Src:             'libfreerdp/common/settings.c:4282,9'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:4289,8'
          Dst:             strnlen
        - Src:             'libfreerdp/common/settings.c:4290,12'
          Dst:             freerdp_certificate_new
        - Src:             'libfreerdp/common/settings.c:4292,12'
          Dst:             freerdp_certificate_new_from_pem
        - Src:             'libfreerdp/common/settings.c:4295,11'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:4301,22'
          Dst:             pem_from_json
        - Src:             'libfreerdp/common/settings.c:4304,9'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:4309,25'
          Dst:             freerdp_key_new_from_pem_enc
        - Src:             'libfreerdp/common/settings.c:4312,11'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:4315,11'
          Dst:             device_array_from_json
        - Src:             'libfreerdp/common/settings.c:4318,11'
          Dst:             addin_argv_from_json
    - functionName:    freerdp_settings_deserialize
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4525
      functionLinenumberEnd: 4660
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         83
      ICount:          425
      EdgeCount:       105
      CyclomaticComplexity: 24
      functionsReached:
        - WINPR_JSON_Delete
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_ParseWithLength
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - deserialize_pointer
        - freerdp_settings_free
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_for_key
        - freerdp_settings_get_type_name_for_type
        - freerdp_settings_new
        - settings_json_bool
        - settings_json_int16
        - settings_json_int32
        - settings_json_int64
        - settings_json_string
        - settings_json_uint16
        - settings_json_uint32
        - settings_json_uint64
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:4582,3'
          Branch Sides:    []
        - Branch String:   'libfreerdp/common/settings.c:4613,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:4526,14'
          Dst:             WLog_Get
        - Src:             'libfreerdp/common/settings.c:4527,21'
          Dst:             WINPR_JSON_ParseWithLength
        - Src:             'libfreerdp/common/settings.c:4530,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4530,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings.c:4535,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:4534,22'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4537,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:4536,24'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4539,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:4538,23'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4541,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:4540,24'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4543,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:4542,23'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4545,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:4544,24'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4547,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:4546,23'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4549,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:4548,24'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4551,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:4550,25'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/common/settings.c:4553,26'
          Dst:             freerdp_settings_new
        - Src:             'libfreerdp/common/settings.c:4556,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings.c:4556,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings.c:4581,18'
          Dst:             freerdp_settings_get_type_for_key
        - Src:             'libfreerdp/common/settings.c:4585,10'
          Dst:             deserialize_pointer
        - Src:             'libfreerdp/common/settings.c:4611,22'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings.c:4612,18'
          Dst:             freerdp_settings_get_type_for_key
        - Src:             'libfreerdp/common/settings.c:4616,10'
          Dst:             settings_json_bool
        - Src:             'libfreerdp/common/settings.c:4620,10'
          Dst:             settings_json_uint16
        - Src:             'libfreerdp/common/settings.c:4624,10'
          Dst:             settings_json_int16
        - Src:             'libfreerdp/common/settings.c:4628,10'
          Dst:             settings_json_uint32
        - Src:             'libfreerdp/common/settings.c:4632,10'
          Dst:             settings_json_int32
        - Src:             'libfreerdp/common/settings.c:4636,10'
          Dst:             settings_json_uint64
        - Src:             'libfreerdp/common/settings.c:4640,10'
          Dst:             settings_json_int64
        - Src:             'libfreerdp/common/settings.c:4644,10'
          Dst:             settings_json_string
        - Src:             'libfreerdp/common/settings.c:4653,2'
          Dst:             WINPR_JSON_Delete
        - Src:             'libfreerdp/common/settings.c:4657,2'
          Dst:             freerdp_settings_free
        - Src:             'libfreerdp/common/settings.c:4658,2'
          Dst:             WINPR_JSON_Delete
    - functionName:    serialize_pointer
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3467
      functionLinenumberEnd: 3689
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          607
      EdgeCount:       82
      CyclomaticComplexity: 14
      functionsReached:
        - WINPR_JSON_AddArrayToObject
        - WINPR_JSON_AddItemToArray
        - WINPR_JSON_CreateArray
        - WINPR_JSON_CreateNull
        - WINPR_JSON_CreateString
        - bitmap_cache_v2_array_to_json
        - channel_def_array_to_json
        - client_cookie_array_to_json
        - fill_array
        - fill_uint32_array
        - freerdp_certificate_get_pem
        - freerdp_key_get_pem
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_pointer
        - freerdp_settings_get_pointer_array
        - freerdp_settings_get_uint32
        - glyph_cache_def_array_to_json
        - json_from_addin_item_array
        - json_from_device_item_array
        - monitor_def_array_to_json
        - server_cookie_array_to_json
        - string_array_to_json
        - tz_info_to_json
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:3480,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3468,21'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings.c:3472,21'
          Dst:             WINPR_JSON_AddArrayToObject
        - Src:             'libfreerdp/common/settings.c:3476,20'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/common/settings.c:3491,11'
          Dst:             fill_array
        - Src:             'libfreerdp/common/settings.c:3495,25'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3496,11'
          Dst:             fill_array
        - Src:             'libfreerdp/common/settings.c:3501,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3502,11'
          Dst:             fill_array
        - Src:             'libfreerdp/common/settings.c:3506,25'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3507,11'
          Dst:             fill_array
        - Src:             'libfreerdp/common/settings.c:3512,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3513,11'
          Dst:             string_array_to_json
        - Src:             'libfreerdp/common/settings.c:3518,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3519,11'
          Dst:             fill_array
        - Src:             'libfreerdp/common/settings.c:3524,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3525,11'
          Dst:             fill_array
        - Src:             'libfreerdp/common/settings.c:3530,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3531,11'
          Dst:             fill_array
        - Src:             'libfreerdp/common/settings.c:3535,11'
          Dst:             tz_info_to_json
        - Src:             'libfreerdp/common/settings.c:3540,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3541,11'
          Dst:             fill_array
        - Src:             'libfreerdp/common/settings.c:3545,11'
          Dst:             glyph_cache_def_array_to_json
        - Src:             'libfreerdp/common/settings.c:3549,11'
          Dst:             glyph_cache_def_array_to_json
        - Src:             'libfreerdp/common/settings.c:3554,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3555,11'
          Dst:             bitmap_cache_v2_array_to_json
        - Src:             'libfreerdp/common/settings.c:3560,11'
          Dst:             fill_array
        - Src:             'libfreerdp/common/settings.c:3564,11'
          Dst:             client_cookie_array_to_json
        - Src:             'libfreerdp/common/settings.c:3568,11'
          Dst:             server_cookie_array_to_json
        - Src:             'libfreerdp/common/settings.c:3572,25'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3573,11'
          Dst:             fill_array
        - Src:             'libfreerdp/common/settings.c:3578,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3579,11'
          Dst:             fill_array
        - Src:             'libfreerdp/common/settings.c:3583,25'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3584,11'
          Dst:             fill_uint32_array
        - Src:             'libfreerdp/common/settings.c:3589,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3590,11'
          Dst:             fill_uint32_array
        - Src:             'libfreerdp/common/settings.c:3594,25'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3595,11'
          Dst:             monitor_def_array_to_json
        - Src:             'libfreerdp/common/settings.c:3599,25'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3600,11'
          Dst:             channel_def_array_to_json
        - Src:             'libfreerdp/common/settings.c:3605,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3606,11'
          Dst:             fill_uint32_array
        - Src:             'libfreerdp/common/settings.c:3611,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3613,8'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/common/settings.c:3619,24'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/common/settings.c:3621,24'
          Dst:             WINPR_JSON_CreateArray
        - Src:             'libfreerdp/common/settings.c:3624,10'
          Dst:             WINPR_JSON_AddItemToArray
        - Src:             'libfreerdp/common/settings.c:3626,10'
          Dst:             fill_array
        - Src:             'libfreerdp/common/settings.c:3634,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3635,11'
          Dst:             string_array_to_json
        - Src:             'libfreerdp/common/settings.c:3642,16'
          Dst:             freerdp_certificate_get_pem
        - Src:             'libfreerdp/common/settings.c:3644,12'
          Dst:             WINPR_JSON_CreateString
        - Src:             'libfreerdp/common/settings.c:3646,12'
          Dst:             WINPR_JSON_CreateString
        - Src:             'libfreerdp/common/settings.c:3648,12'
          Dst:             WINPR_JSON_CreateNull
        - Src:             'libfreerdp/common/settings.c:3653,11'
          Dst:             WINPR_JSON_AddItemToArray
        - Src:             'libfreerdp/common/settings.c:3659,16'
          Dst:             freerdp_key_get_pem
        - Src:             'libfreerdp/common/settings.c:3661,12'
          Dst:             WINPR_JSON_CreateString
        - Src:             'libfreerdp/common/settings.c:3666,11'
          Dst:             WINPR_JSON_AddItemToArray
        - Src:             'libfreerdp/common/settings.c:3670,25'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3671,11'
          Dst:             json_from_device_item_array
        - Src:             'libfreerdp/common/settings.c:3676,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3677,11'
          Dst:             json_from_addin_item_array
        - Src:             'libfreerdp/common/settings.c:3682,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3683,11'
          Dst:             json_from_addin_item_array
    - functionName:    freerdp_settings_get_pointer
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1416
      functionLinenumberEnd: 1423
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_settings_get_pointer_writable
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:1423,9'
          Dst:             freerdp_settings_get_pointer_writable
    - functionName:    freerdp_settings_serialize
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3692
      functionLinenumberEnd: 3835
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          433
      EdgeCount:       103
      CyclomaticComplexity: 28
      functionsReached:
        - WINPR_JSON_AddBoolToObject
        - WINPR_JSON_AddNullToObject
        - WINPR_JSON_AddNumberToObject
        - WINPR_JSON_AddObjectToObject
        - WINPR_JSON_AddStringToObject
        - WINPR_JSON_CreateObject
        - WINPR_JSON_Delete
        - WINPR_JSON_Print
        - WINPR_JSON_PrintUnformatted
        - freerdp_settings_get_bool
        - freerdp_settings_get_int16
        - freerdp_settings_get_int32
        - freerdp_settings_get_int64
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_string
        - freerdp_settings_get_type_for_key
        - freerdp_settings_get_type_name_for_type
        - freerdp_settings_get_uint16
        - freerdp_settings_get_uint32
        - freerdp_settings_get_uint64
        - serialize_pointer
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:3747,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:3701,21'
          Dst:             WINPR_JSON_CreateObject
        - Src:             'libfreerdp/common/settings.c:3706,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:3705,22'
          Dst:             WINPR_JSON_AddObjectToObject
        - Src:             'libfreerdp/common/settings.c:3708,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:3707,24'
          Dst:             WINPR_JSON_AddObjectToObject
        - Src:             'libfreerdp/common/settings.c:3710,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:3709,23'
          Dst:             WINPR_JSON_AddObjectToObject
        - Src:             'libfreerdp/common/settings.c:3712,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:3711,24'
          Dst:             WINPR_JSON_AddObjectToObject
        - Src:             'libfreerdp/common/settings.c:3714,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:3713,23'
          Dst:             WINPR_JSON_AddObjectToObject
        - Src:             'libfreerdp/common/settings.c:3716,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:3715,24'
          Dst:             WINPR_JSON_AddObjectToObject
        - Src:             'libfreerdp/common/settings.c:3718,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:3717,23'
          Dst:             WINPR_JSON_AddObjectToObject
        - Src:             'libfreerdp/common/settings.c:3720,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:3719,24'
          Dst:             WINPR_JSON_AddObjectToObject
        - Src:             'libfreerdp/common/settings.c:3722,12'
          Dst:             freerdp_settings_get_type_name_for_type
        - Src:             'libfreerdp/common/settings.c:3721,25'
          Dst:             WINPR_JSON_AddObjectToObject
        - Src:             'libfreerdp/common/settings.c:3745,22'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings.c:3746,18'
          Dst:             freerdp_settings_get_type_for_key
        - Src:             'libfreerdp/common/settings.c:3751,22'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/common/settings.c:3752,10'
          Dst:             WINPR_JSON_AddBoolToObject
        - Src:             'libfreerdp/common/settings.c:3758,26'
          Dst:             freerdp_settings_get_uint16
        - Src:             'libfreerdp/common/settings.c:3759,10'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3765,25'
          Dst:             freerdp_settings_get_int16
        - Src:             'libfreerdp/common/settings.c:3766,10'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3772,26'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:3773,10'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3779,25'
          Dst:             freerdp_settings_get_int32
        - Src:             'libfreerdp/common/settings.c:3780,10'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3786,26'
          Dst:             freerdp_settings_get_uint64
        - Src:             'libfreerdp/common/settings.c:3787,10'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3793,25'
          Dst:             freerdp_settings_get_int64
        - Src:             'libfreerdp/common/settings.c:3794,10'
          Dst:             WINPR_JSON_AddNumberToObject
        - Src:             'libfreerdp/common/settings.c:3800,23'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/common/settings.c:3803,11'
          Dst:             WINPR_JSON_AddStringToObject
        - Src:             'libfreerdp/common/settings.c:3808,11'
          Dst:             WINPR_JSON_AddNullToObject
        - Src:             'libfreerdp/common/settings.c:3814,10'
          Dst:             serialize_pointer
        - Src:             'libfreerdp/common/settings.c:3823,9'
          Dst:             WINPR_JSON_Print
        - Src:             'libfreerdp/common/settings.c:3825,9'
          Dst:             WINPR_JSON_PrintUnformatted
        - Src:             'libfreerdp/common/settings.c:3830,14'
          Dst:             strlen
        - Src:             'libfreerdp/common/settings.c:3833,2'
          Dst:             WINPR_JSON_Delete
    - functionName:    sort_monitor_fn
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2421
      functionLinenumberEnd: 2438
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          147
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2424,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2425,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_settings_set_monitor_def_array_sorted
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2442
      functionLinenumberEnd: 2524
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         82
      ICount:          407
      EdgeCount:       102
      CyclomaticComplexity: 22
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_pointer_writable
        - freerdp_settings_set_int32
        - freerdp_settings_set_pointer_len
        - freerdp_settings_set_uint32
        - qsort
        - sort_monitor_fn
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2443,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2446,8'
          Dst:             freerdp_settings_set_int32
        - Src:             'libfreerdp/common/settings.c:2448,8'
          Dst:             freerdp_settings_set_int32
        - Src:             'libfreerdp/common/settings.c:2450,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:2452,10'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings.c:2481,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:2485,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:2487,23'
          Dst:             freerdp_settings_get_pointer_writable
        - Src:             'libfreerdp/common/settings.c:2488,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2502,7'
          Dst:             freerdp_settings_set_int32
        - Src:             'libfreerdp/common/settings.c:2504,7'
          Dst:             freerdp_settings_set_int32
        - Src:             'libfreerdp/common/settings.c:2520,2'
          Dst:             qsort
        - Src:             'libfreerdp/common/settings.c:2520,2'
          Dst:             sort_monitor_fn
        - Src:             'libfreerdp/common/settings.c:2523,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2523,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2522,9'
          Dst:             freerdp_settings_set_uint32
    - functionName:    qsort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_settings_are_valid
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2412
      functionLinenumberEnd: 2413
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_settings_append_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2393
      functionLinenumberEnd: 2408
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_settings_get_string
        - freerdp_settings_set_string_len
        - winpr_asprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2394,20'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/common/settings.c:2400,3'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/common/settings.c:2402,3'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/common/settings.c:2404,3'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/common/settings.c:2406,18'
          Dst:             freerdp_settings_set_string_len
    - functionName:    freerdp_supported_color_depths_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2367
      functionLinenumberEnd: 2388
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          118
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - snprintf
        - winpr_str_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2372,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2374,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2376,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2378,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2383,9'
          Dst:             snprintf
        - Src:             'libfreerdp/common/settings.c:2384,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2387,8'
          Dst:             snprintf
    - functionName:    freerdp_encryption_methods_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2339
      functionLinenumberEnd: 2364
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          99
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - winpr_str_append
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2342,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2348,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2352,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2356,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2360,3'
          Dst:             winpr_str_append
    - functionName:    freerdp_encryption_level_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2320
      functionLinenumberEnd: 2336
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:2321,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    freerdp_rdpdr_dtyp_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2301
      functionLinenumberEnd: 2317
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:2302,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    freerdp_settings_get_string_as_utf16
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2291
      functionLinenumberEnd: 2298
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - freerdp_settings_get_string
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2292,20'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/common/settings.c:2297,9'
          Dst:             ConvertUtf8ToWCharAlloc
    - functionName:    freerdp_settings_set_string_from_utf16N
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2268
      functionLinenumberEnd: 2287
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          92
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - ConvertWCharNToUtf8Alloc
        - _wcsnlen
        - freerdp_settings_set_string_
        - freerdp_settings_set_string_copy_
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2271,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2274,10'
          Dst:             freerdp_settings_set_string_copy_
        - Src:             'libfreerdp/common/settings.c:2276,14'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'libfreerdp/common/settings.c:2281,23'
          Dst:             _wcsnlen
        - Src:             'libfreerdp/common/settings.c:2286,9'
          Dst:             freerdp_settings_set_string_
    - functionName:    freerdp_settings_set_string_from_utf16
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2251
      functionLinenumberEnd: 2264
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          75
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - freerdp_settings_set_string_
        - freerdp_settings_set_string_copy_
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2252,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2255,10'
          Dst:             freerdp_settings_set_string_copy_
        - Src:             'libfreerdp/common/settings.c:2259,14'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'libfreerdp/common/settings.c:2263,9'
          Dst:             freerdp_settings_set_string_
    - functionName:    freerdp_rdp_version_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2211
      functionLinenumberEnd: 2247
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          92
      EdgeCount:       34
      CyclomaticComplexity: 18
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:2212,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    freerdp_settings_update_from_caps
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2186
      functionLinenumberEnd: 2208
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          193
      EdgeCount:       58
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_StaticConstInit
        - WLog_Get
        - rdp_read_capability_set
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2187,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2188,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2189,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2190,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2191,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2193,14'
          Dst:             WLog_Get
        - Src:             'libfreerdp/common/settings.c:2200,19'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/common/settings.c:2202,9'
          Dst:             rdp_read_capability_set
    - functionName:    freerdp_rail_support_flags_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2150
      functionLinenumberEnd: 2180
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          171
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - snprintf
        - winpr_str_append
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2158,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2160,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2162,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2164,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2166,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2168,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2170,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2172,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/common/settings.c:2177,9'
          Dst:             snprintf
        - Src:             'libfreerdp/common/settings.c:2178,3'
          Dst:             winpr_str_append
    - functionName:    freerdp_device_equal
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2063
      functionLinenumberEnd: 2147
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          469
      EdgeCount:       103
      CyclomaticComplexity: 28
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:2084,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2075,7'
          Dst:             strcmp
        - Src:             'libfreerdp/common/settings.c:2091,12'
          Dst:             strcmp
        - Src:             'libfreerdp/common/settings.c:2102,9'
          Dst:             strcmp
        - Src:             'libfreerdp/common/settings.c:2110,9'
          Dst:             strcmp
        - Src:             'libfreerdp/common/settings.c:2116,12'
          Dst:             strcmp
        - Src:             'libfreerdp/common/settings.c:2125,12'
          Dst:             strcmp
        - Src:             'libfreerdp/common/settings.c:2138,12'
          Dst:             strcmp
    - functionName:    freerdp_target_net_addresses_copy
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2042
      functionLinenumberEnd: 2060
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          100
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_settings_set_pointer_array
        - freerdp_target_net_addresses_free
        - freerdp_target_net_adresses_reset
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2043,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2044,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:2046,7'
          Dst:             freerdp_target_net_adresses_reset
        - Src:             'libfreerdp/common/settings.c:2052,8'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/common/settings.c:2054,4'
          Dst:             freerdp_target_net_addresses_free
    - functionName:    freerdp_settings_get_server_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2019
      functionLinenumberEnd: 2026
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:2020,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_settings_get_codecs_flags
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2004
      functionLinenumberEnd: 2015
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    value_to_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1247
      functionLinenumberEnd: 1268
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          93
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - strtoll
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:1254,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:1255,7'
          Dst:             strtoll
        - Src:             'libfreerdp/common/settings.c:1257,6'
          Dst:             __errno_location
    - functionName:    strtoll
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    value_to_uint
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1223
      functionLinenumberEnd: 1244
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          93
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - strtoull
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:1230,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/common/settings.c:1231,7'
          Dst:             strtoull
        - Src:             'libfreerdp/common/settings.c:1233,6'
          Dst:             __errno_location
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parsing_fail
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1271
      functionLinenumberEnd: 1273
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:1272,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_settings_set_value_for_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1277
      functionLinenumberEnd: 1373
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          369
      EdgeCount:       74
      CyclomaticComplexity: 20
      functionsReached:
        - WLog_Print_dbg_tag
        - _strnicmp
        - freerdp_settings_get_key_for_name
        - freerdp_settings_get_type_for_key
        - freerdp_settings_set_bool
        - freerdp_settings_set_int16
        - freerdp_settings_set_int32
        - freerdp_settings_set_int64
        - freerdp_settings_set_string
        - freerdp_settings_set_uint16
        - freerdp_settings_set_uint32
        - freerdp_settings_set_uint64
        - parsing_fail
        - value_to_int
        - value_to_uint
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings.c:1295,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:1285,20'
          Dst:             freerdp_settings_get_key_for_name
        - Src:             'libfreerdp/common/settings.c:1288,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings.c:1294,9'
          Dst:             freerdp_settings_get_type_for_key
        - Src:             'libfreerdp/common/settings.c:1300,22'
          Dst:             _strnicmp
        - Src:             'libfreerdp/common/settings.c:1300,60'
          Dst:             _strnicmp
        - Src:             'libfreerdp/common/settings.c:1302,9'
          Dst:             _strnicmp
        - Src:             'libfreerdp/common/settings.c:1302,48'
          Dst:             _strnicmp
        - Src:             'libfreerdp/common/settings.c:1304,12'
          Dst:             parsing_fail
        - Src:             'libfreerdp/common/settings.c:1307,11'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1310,9'
          Dst:             value_to_uint
        - Src:             'libfreerdp/common/settings.c:1311,12'
          Dst:             parsing_fail
        - Src:             'libfreerdp/common/settings.c:1314,9'
          Dst:             freerdp_settings_set_uint16
        - Src:             'libfreerdp/common/settings.c:1316,12'
          Dst:             parsing_fail
        - Src:             'libfreerdp/common/settings.c:1320,9'
          Dst:             value_to_int
        - Src:             'libfreerdp/common/settings.c:1321,12'
          Dst:             parsing_fail
        - Src:             'libfreerdp/common/settings.c:1324,9'
          Dst:             freerdp_settings_set_int16
        - Src:             'libfreerdp/common/settings.c:1326,12'
          Dst:             parsing_fail
        - Src:             'libfreerdp/common/settings.c:1329,9'
          Dst:             value_to_uint
        - Src:             'libfreerdp/common/settings.c:1330,12'
          Dst:             parsing_fail
        - Src:             'libfreerdp/common/settings.c:1333,9'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings.c:1335,12'
          Dst:             parsing_fail
        - Src:             'libfreerdp/common/settings.c:1338,9'
          Dst:             value_to_int
        - Src:             'libfreerdp/common/settings.c:1339,12'
          Dst:             parsing_fail
        - Src:             'libfreerdp/common/settings.c:1342,9'
          Dst:             freerdp_settings_set_int32
        - Src:             'libfreerdp/common/settings.c:1344,12'
          Dst:             parsing_fail
        - Src:             'libfreerdp/common/settings.c:1347,9'
          Dst:             value_to_uint
        - Src:             'libfreerdp/common/settings.c:1348,12'
          Dst:             parsing_fail
        - Src:             'libfreerdp/common/settings.c:1351,9'
          Dst:             freerdp_settings_set_uint64
        - Src:             'libfreerdp/common/settings.c:1352,12'
          Dst:             parsing_fail
        - Src:             'libfreerdp/common/settings.c:1355,9'
          Dst:             value_to_int
        - Src:             'libfreerdp/common/settings.c:1356,12'
          Dst:             parsing_fail
        - Src:             'libfreerdp/common/settings.c:1359,9'
          Dst:             freerdp_settings_set_int64
        - Src:             'libfreerdp/common/settings.c:1360,12'
          Dst:             parsing_fail
        - Src:             'libfreerdp/common/settings.c:1365,11'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/common/settings.c:1368,11'
          Dst:             parsing_fail
    - functionName:    freerdp_update_gateway_usage_method
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1152
      functionLinenumberEnd: 1167
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          100
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_set_gateway_usage_method
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:1162,7'
          Dst:             freerdp_set_gateway_usage_method
        - Src:             'libfreerdp/common/settings.c:1163,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_set_gateway_usage_method
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1095
      functionLinenumberEnd: 1136
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          178
      EdgeCount:       62
      CyclomaticComplexity: 18
      functionsReached:
        - freerdp_settings_set_bool
        - freerdp_settings_set_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:1096,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings.c:1101,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1102,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1107,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1108,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1113,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1114,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1124,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1125,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1130,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1131,8'
          Dst:             freerdp_settings_set_bool
    - functionName:    freerdp_get_gateway_usage_method
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1139
      functionLinenumberEnd: 1148
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_settings_get_bool
        - freerdp_settings_get_uint32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:1140,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/common/settings.c:1142,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/common/settings.c:1147,9'
          Dst:             freerdp_settings_get_uint32
    - functionName:    freerdp_performance_flags_split
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1058
      functionLinenumberEnd: 1092
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          136
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_uint32
        - freerdp_settings_set_bool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:1061,33'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1060,6'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1065,11'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1063,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1070,11'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1068,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1075,11'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1073,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1080,11'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1078,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1085,11'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:1083,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings.c:1090,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_performance_flags_make
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1030
      functionLinenumberEnd: 1055
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          127
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - freerdp_settings_set_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:1033,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/common/settings.c:1036,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/common/settings.c:1039,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/common/settings.c:1042,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/common/settings.c:1045,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/common/settings.c:1048,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/common/settings.c:1050,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings.c:1051,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_server_license_issuers_copy
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1010
      functionLinenumberEnd: 1027
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          112
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - _strdup
        - freerdp_settings_set_pointer_len
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:1011,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:1012,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:1014,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings.c:1020,18'
          Dst:             _strdup
    - functionName:    freerdp_capability_buffer_copy
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 909
      functionLinenumberEnd: 944
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          243
      EdgeCount:       52
      CyclomaticComplexity: 7
      functionsReached:
        - freerdp_capability_buffer_resize
        - realloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:910,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:911,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:916,7'
          Dst:             freerdp_capability_buffer_resize
        - Src:             'libfreerdp/common/settings.c:921,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:924,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:927,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:930,16'
          Dst:             realloc
    - functionName:    freerdp_dynamic_channel_collection_find
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 693
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          88
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_settings_get_uint32
        - strcmp
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:694,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:695,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:698,15'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:702,7'
          Dst:             strcmp
    - functionName:    freerdp_dynamic_channel_collection_add
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 658
      functionLinenumberEnd: 690
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          214
      EdgeCount:       55
      CyclomaticComplexity: 9
      functionsReached:
        - freerdp_settings_get_uint32
        - freerdp_settings_set_uint32
        - realloc
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:662,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:663,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:665,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:666,12'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:672,21'
          Dst:             realloc
        - Src:             'libfreerdp/common/settings.c:683,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:683,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:682,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings.c:687,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:689,9'
          Dst:             freerdp_settings_set_uint32
    - functionName:    freerdp_dynamic_channel_collection_del
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 627
      functionLinenumberEnd: 655
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          178
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - freerdp_addin_argv_free
        - freerdp_settings_get_uint32
        - freerdp_settings_set_uint32
        - memmove_s
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:628,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:637,8'
          Dst:             strcmp
        - Src:             'libfreerdp/common/settings.c:639,26'
          Dst:             memmove_s
        - Src:             'libfreerdp/common/settings.c:646,5'
          Dst:             freerdp_addin_argv_free
        - Src:             'libfreerdp/common/settings.c:647,10'
          Dst:             freerdp_settings_set_uint32
    - functionName:    freerdp_static_channel_collection_find
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 602
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          89
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_settings_get_uint32
        - strcmp
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:589,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:590,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:593,15'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:597,7'
          Dst:             strcmp
    - functionName:    freerdp_static_channel_collection_add
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 549
      functionLinenumberEnd: 583
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          220
      EdgeCount:       55
      CyclomaticComplexity: 9
      functionsReached:
        - freerdp_addin_argv_free
        - freerdp_settings_get_uint32
        - freerdp_settings_set_uint32
        - realloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:552,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:553,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:555,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:556,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:559,7'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:561,42'
          Dst:             realloc
        - Src:             'libfreerdp/common/settings.c:573,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:573,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:572,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings.c:577,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:580,2'
          Dst:             freerdp_addin_argv_free
        - Src:             'libfreerdp/common/settings.c:582,9'
          Dst:             freerdp_settings_set_uint32
    - functionName:    freerdp_static_channel_collection_del
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          205
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - freerdp_addin_argv_free
        - freerdp_settings_get_uint32
        - freerdp_settings_set_uint32
        - memmove_s
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:516,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:525,8'
          Dst:             strcmp
        - Src:             'libfreerdp/common/settings.c:527,26'
          Dst:             memmove_s
        - Src:             'libfreerdp/common/settings.c:534,5'
          Dst:             freerdp_addin_argv_free
        - Src:             'libfreerdp/common/settings.c:535,10'
          Dst:             freerdp_settings_set_uint32
    - functionName:    freerdp_device_collection_find_type
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          75
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:306,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_device_collection_find
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          97
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:287,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:288,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:296,7'
          Dst:             strcmp
    - functionName:    freerdp_device_collection_del
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          129
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:258,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_device_collection_add
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          210
      EdgeCount:       55
      CyclomaticComplexity: 9
      functionsReached:
        - freerdp_settings_get_uint32
        - freerdp_settings_set_uint32
        - realloc
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:229,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:230,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:232,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:233,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings.c:238,23'
          Dst:             realloc
        - Src:             'libfreerdp/common/settings.c:248,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:248,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:247,8'
          Dst:             freerdp_settings_set_uint32
    - functionName:    freerdp_addin_replace_argument_value
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          153
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
        - freerdp_addin_argv_add_argument
        - snprintf
        - strcmp
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:200,11'
          Dst:             strlen
        - Src:             'libfreerdp/common/settings.c:200,28'
          Dst:             strlen
        - Src:             'libfreerdp/common/settings.c:201,15'
          Dst:             calloc
        - Src:             'libfreerdp/common/settings.c:206,8'
          Dst:             snprintf
        - Src:             'libfreerdp/common/settings.c:210,7'
          Dst:             strcmp
        - Src:             'libfreerdp/common/settings.c:218,7'
          Dst:             freerdp_addin_argv_add_argument
    - functionName:    freerdp_addin_argv_add_argument
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_addin_argv_add_argument_ex
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:85,9'
          Dst:             freerdp_addin_argv_add_argument_ex
    - functionName:    freerdp_addin_argv_add_argument_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          174
      EdgeCount:       45
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
        - realloc
        - strlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:65,9'
          Dst:             strlen
        - Src:             'libfreerdp/common/settings.c:68,42'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:68,42'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:67,28'
          Dst:             realloc
        - Src:             'libfreerdp/common/settings.c:75,14'
          Dst:             calloc
    - functionName:    freerdp_addin_set_argument_value
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          243
      EdgeCount:       56
      CyclomaticComplexity: 13
      functionsReached:
        - calloc
        - freerdp_addin_argv_add_argument
        - snprintf
        - strchr
        - strlen
        - strncmp
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:161,11'
          Dst:             strlen
        - Src:             'libfreerdp/common/settings.c:161,28'
          Dst:             strlen
        - Src:             'libfreerdp/common/settings.c:162,15'
          Dst:             calloc
        - Src:             'libfreerdp/common/settings.c:167,8'
          Dst:             snprintf
        - Src:             'libfreerdp/common/settings.c:171,7'
          Dst:             strchr
        - Src:             'libfreerdp/common/settings.c:176,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:176,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:175,8'
          Dst:             strncmp
        - Src:             'libfreerdp/common/settings.c:185,7'
          Dst:             freerdp_addin_argv_add_argument
    - functionName:    freerdp_addin_replace_argument
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          117
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - _strdup
        - freerdp_addin_argv_add_argument
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:137,7'
          Dst:             strcmp
        - Src:             'libfreerdp/common/settings.c:141,26'
          Dst:             _strdup
        - Src:             'libfreerdp/common/settings.c:148,7'
          Dst:             freerdp_addin_argv_add_argument
    - functionName:    freerdp_addin_set_argument
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          84
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - freerdp_addin_argv_add_argument
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:119,7'
          Dst:             strcmp
        - Src:             'libfreerdp/common/settings.c:125,7'
          Dst:             freerdp_addin_argv_add_argument
    - functionName:    freerdp_addin_argv_del_argument
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         57
      ICount:          260
      EdgeCount:       67
      CyclomaticComplexity: 12
      functionsReached:
        - memmove_s
        - strcmp
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings.c:95,7'
          Dst:             strcmp
        - Src:             'libfreerdp/common/settings.c:100,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:100,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:102,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:102,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings.c:99,8'
          Dst:             memmove_s
    - functionName:    alloc_empty_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:30,14'
          Dst:             calloc
    - functionName:    free_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:20,24'
          Dst:             strlen
    - functionName:    freerdp_settings_set_pointer
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4267
      functionLinenumberEnd: 4409
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          301
      EdgeCount:       85
      CyclomaticComplexity: 44
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    16
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:4277,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:4273,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:4404,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:4404,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:4404,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:    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:    freerdp_settings_get_pointer_writable
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4158
      functionLinenumberEnd: 4262
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          302
      EdgeCount:       90
      CyclomaticComplexity: 46
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    11
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:4161,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:4159,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:4257,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:4257,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:4257,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings_getters.c:4259,4'
          Dst:             winpr_int_assert
    - functionName:    update_string_copy_
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - alloc_empty_string
        - free_string
        - strndup
      functionUses:    109
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:38,2'
          Dst:             free_string
        - Src:             'libfreerdp/common/settings_getters.c:40,6'
          Dst:             alloc_empty_string
        - Src:             'libfreerdp/common/settings_getters.c:43,21'
          Dst:             strndup
    - functionName:    freerdp_settings_set_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3791
      functionLinenumberEnd: 3795
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_set_string_copy_
        - strlen
      functionUses:    56
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:3794,9'
          Dst:             strlen
        - Src:             'libfreerdp/common/settings_getters.c:3795,9'
          Dst:             freerdp_settings_set_string_copy_
    - functionName:    freerdp_settings_set_string_copy_
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3801
      functionLinenumberEnd: 4155
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         120
      ICount:          1254
      EdgeCount:       239
      CyclomaticComplexity: 121
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - update_string_copy_
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:3813,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:3809,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:3816,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3819,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3822,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3825,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3828,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3831,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3834,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3837,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3840,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3843,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3846,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3850,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3853,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3856,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3859,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3862,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3865,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3868,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3871,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3874,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3877,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3880,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3883,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3886,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3889,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3892,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3895,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3898,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3901,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3904,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3907,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3910,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3913,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3916,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3920,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3923,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3926,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3929,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3933,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3936,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3940,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3943,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3946,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3950,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3953,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3956,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3959,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3962,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3965,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3968,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3971,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3974,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3977,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3980,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3983,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3986,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3989,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3992,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3995,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:3998,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4001,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4004,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4007,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4010,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4013,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4016,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4019,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4022,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4025,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4028,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4031,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4034,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4037,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4040,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4043,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4046,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4049,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4052,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4055,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4058,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4062,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4065,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4068,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4071,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4074,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4077,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4080,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4083,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4087,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4090,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4093,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4096,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4099,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4102,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4105,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4108,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4111,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4114,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4117,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4120,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4123,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4126,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4129,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4132,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4135,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4138,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4141,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4144,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4147,11'
          Dst:             update_string_copy_
        - Src:             'libfreerdp/common/settings_getters.c:4150,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:4150,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:4150,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_settings_set_string_len
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3785
      functionLinenumberEnd: 3786
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_settings_set_string_copy_
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:3786,9'
          Dst:             freerdp_settings_set_string_copy_
    - functionName:    update_string_
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - alloc_empty_string
        - free_string
      functionUses:    109
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:49,2'
          Dst:             free_string
        - Src:             'libfreerdp/common/settings_getters.c:51,6'
          Dst:             alloc_empty_string
    - functionName:    freerdp_settings_set_string_
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3434
      functionLinenumberEnd: 3781
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         120
      ICount:          1143
      EdgeCount:       239
      CyclomaticComplexity: 121
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - update_string_
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:3446,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:3442,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:3449,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3452,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3455,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3458,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3461,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3464,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3467,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3470,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3473,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3476,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3479,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3482,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3485,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3488,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3491,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3494,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3497,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3500,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3503,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3506,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3509,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3512,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3515,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3518,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3521,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3524,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3527,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3530,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3533,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3536,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3539,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3542,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3545,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3548,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3551,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3554,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3557,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3560,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3563,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3566,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3569,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3572,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3575,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3578,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3581,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3584,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3587,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3590,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3593,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3596,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3599,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3602,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3605,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3608,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3611,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3614,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3617,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3620,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3623,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3626,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3629,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3632,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3635,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3638,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3641,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3644,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3647,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3650,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3653,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3656,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3659,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3662,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3665,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3668,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3671,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3674,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3677,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3680,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3683,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3686,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3689,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3692,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3695,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3698,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3701,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3704,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3707,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3710,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3713,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3716,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3719,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3722,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3725,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3728,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3731,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3734,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3737,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3740,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3743,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3746,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3749,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3752,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3755,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3758,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3761,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3764,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3767,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3770,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3773,11'
          Dst:             update_string_
        - Src:             'libfreerdp/common/settings_getters.c:3776,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:3776,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:3776,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_settings_get_string_writable
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3090
      functionLinenumberEnd: 3428
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         124
      ICount:          926
      EdgeCount:       246
      CyclomaticComplexity: 124
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:3093,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:3091,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:3423,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:3423,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:3423,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings_getters.c:3425,4'
          Dst:             winpr_int_assert
    - functionName:    freerdp_settings_get_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2749
      functionLinenumberEnd: 3087
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         124
      ICount:          926
      EdgeCount:       246
      CyclomaticComplexity: 124
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    90
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:2752,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:2750,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:3082,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:3082,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:3082,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings_getters.c:3084,4'
          Dst:             winpr_int_assert
    - functionName:    freerdp_settings_set_int64
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2725
      functionLinenumberEnd: 2742
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          47
      EdgeCount:       19
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:2737,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:2733,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:2740,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2740,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2740,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_settings_get_int64
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2710
      functionLinenumberEnd: 2719
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          50
      EdgeCount:       26
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:2713,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:2711,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:2716,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2716,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2716,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings_getters.c:2718,4'
          Dst:             winpr_int_assert
    - functionName:    freerdp_settings_set_uint64
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2678
      functionLinenumberEnd: 2706
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          69
      EdgeCount:       27
      CyclomaticComplexity: 15
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:2690,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:2686,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:2701,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2701,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2701,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_settings_get_uint64
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2657
      functionLinenumberEnd: 2674
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          70
      EdgeCount:       32
      CyclomaticComplexity: 17
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:2660,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:2658,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:2669,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2669,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2669,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings_getters.c:2671,4'
          Dst:             winpr_int_assert
    - functionName:    freerdp_settings_set_int32
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2617
      functionLinenumberEnd: 2653
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          85
      EdgeCount:       31
      CyclomaticComplexity: 17
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:2629,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:2625,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:2648,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2648,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2648,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_settings_get_int32
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2590
      functionLinenumberEnd: 2613
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          86
      EdgeCount:       36
      CyclomaticComplexity: 19
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:2593,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:2591,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:2608,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2608,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2608,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings_getters.c:2610,4'
          Dst:             winpr_int_assert
    - functionName:    freerdp_settings_set_uint32
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2050
      functionLinenumberEnd: 2586
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         140
      ICount:          1077
      EdgeCount:       279
      CyclomaticComplexity: 141
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    146
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:2062,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:2058,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:2581,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2581,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2581,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_settings_get_uint32
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1647
      functionLinenumberEnd: 2046
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         143
      ICount:          1078
      EdgeCount:       284
      CyclomaticComplexity: 143
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    224
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:1650,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:1648,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:2041,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2041,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:2041,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings_getters.c:2043,4'
          Dst:             winpr_int_assert
    - functionName:    freerdp_settings_set_int16
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1623
      functionLinenumberEnd: 1640
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          47
      EdgeCount:       19
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:1635,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:1631,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:1638,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:1638,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:1638,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_settings_get_int16
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1608
      functionLinenumberEnd: 1617
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          50
      EdgeCount:       26
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:1611,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:1609,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:1614,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:1614,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:1614,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings_getters.c:1616,4'
          Dst:             winpr_int_assert
    - functionName:    freerdp_settings_set_uint16
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1532
      functionLinenumberEnd: 1604
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          157
      EdgeCount:       49
      CyclomaticComplexity: 26
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    12
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:1544,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:1540,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:1599,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:1599,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:1599,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_settings_get_uint16
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1478
      functionLinenumberEnd: 1528
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          158
      EdgeCount:       54
      CyclomaticComplexity: 28
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    13
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:1481,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:1479,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:1523,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:1523,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:1523,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings_getters.c:1525,4'
          Dst:             winpr_int_assert
    - functionName:    freerdp_settings_set_bool
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 666
      functionLinenumberEnd: 1474
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         209
      ICount:          1629
      EdgeCount:       417
      CyclomaticComplexity: 210
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    166
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:678,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:674,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:1469,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:1469,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:1469,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_settings_get_bool
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_getters.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         212
      ICount:          1630
      EdgeCount:       422
      CyclomaticComplexity: 212
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_name_for_key
        - freerdp_settings_get_type_name_for_key
        - winpr_int_assert
      functionUses:    137
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_getters.c:63,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_getters.c:61,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_getters.c:657,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:657,4'
          Dst:             freerdp_settings_get_type_name_for_key
        - Src:             'libfreerdp/common/settings_getters.c:657,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings_getters.c:659,4'
          Dst:             winpr_int_assert
    - functionName:    freerdp_settings_copy_item
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          199
      EdgeCount:       51
      CyclomaticComplexity: 27
      functionsReached:
        - freerdp_settings_get_bool
        - freerdp_settings_get_int16
        - freerdp_settings_get_int32
        - freerdp_settings_get_int64
        - freerdp_settings_get_pointer
        - freerdp_settings_get_string
        - freerdp_settings_get_type_for_key
        - freerdp_settings_get_uint16
        - freerdp_settings_get_uint32
        - freerdp_settings_get_uint64
        - freerdp_settings_set_bool
        - freerdp_settings_set_int16
        - freerdp_settings_set_int32
        - freerdp_settings_set_int64
        - freerdp_settings_set_pointer
        - freerdp_settings_set_string
        - freerdp_settings_set_uint16
        - freerdp_settings_set_uint32
        - freerdp_settings_set_uint64
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_str.c:449,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_str.c:445,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_str.c:446,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_str.c:448,22'
          Dst:             freerdp_settings_get_type_for_key
        - Src:             'libfreerdp/common/settings_str.c:453,21'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/common/settings_str.c:454,11'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings_str.c:458,22'
          Dst:             freerdp_settings_get_int16
        - Src:             'libfreerdp/common/settings_str.c:459,11'
          Dst:             freerdp_settings_set_int16
        - Src:             'libfreerdp/common/settings_str.c:463,22'
          Dst:             freerdp_settings_get_int32
        - Src:             'libfreerdp/common/settings_str.c:464,11'
          Dst:             freerdp_settings_set_int32
        - Src:             'libfreerdp/common/settings_str.c:468,22'
          Dst:             freerdp_settings_get_int64
        - Src:             'libfreerdp/common/settings_str.c:469,11'
          Dst:             freerdp_settings_set_int64
        - Src:             'libfreerdp/common/settings_str.c:473,23'
          Dst:             freerdp_settings_get_uint16
        - Src:             'libfreerdp/common/settings_str.c:474,11'
          Dst:             freerdp_settings_set_uint16
        - Src:             'libfreerdp/common/settings_str.c:478,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings_str.c:479,11'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings_str.c:483,23'
          Dst:             freerdp_settings_get_uint64
        - Src:             'libfreerdp/common/settings_str.c:484,11'
          Dst:             freerdp_settings_set_uint64
        - Src:             'libfreerdp/common/settings_str.c:488,22'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/common/settings_str.c:489,11'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/common/settings_str.c:493,22'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/common/settings_str.c:494,11'
          Dst:             freerdp_settings_set_pointer
    - functionName:    freerdp_settings_get_type_for_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_settings_get_name_for_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    29
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_settings_get_type_name_for_type
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          61
      EdgeCount:       22
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    19
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_str.c:396,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    freerdp_settings_get_type_name_for_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 389
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_settings_get_type_for_key
        - freerdp_settings_get_type_name_for_type
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings_str.c:390,23'
          Dst:             freerdp_settings_get_type_for_key
        - Src:             'libfreerdp/common/settings_str.c:391,9'
          Dst:             freerdp_settings_get_type_name_for_type
    - functionName:    freerdp_settings_get_type_for_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 386
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          67
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings_str.c:377,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_str.c:382,7'
          Dst:             strcmp
    - functionName:    freerdp_settings_get_key_for_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          67
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/settings_str.c:364,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_str.c:369,7'
          Dst:             strcmp
    - 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:    freerdp_settings_free_keys
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          108
      EdgeCount:       25
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_set_pointer_len
        - freerdp_settings_set_string_copy_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_str.c:335,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_str.c:330,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_str.c:338,10'
          Dst:             freerdp_settings_set_string_copy_
        - Src:             'libfreerdp/common/settings_str.c:341,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/settings_str.c:348,10'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/common/settings_str.c:351,6'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_settings_dump
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         93
      ICount:          411
      EdgeCount:       102
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_get_bool
        - freerdp_settings_get_int16
        - freerdp_settings_get_int32
        - freerdp_settings_get_int64
        - freerdp_settings_get_pointer
        - freerdp_settings_get_string
        - freerdp_settings_get_uint16
        - freerdp_settings_get_uint32
        - freerdp_settings_get_uint64
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_str.c:257,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_str.c:251,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_str.c:252,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_str.c:262,9'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/common/settings_str.c:263,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:263,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:269,9'
          Dst:             freerdp_settings_get_uint16
        - Src:             'libfreerdp/common/settings_str.c:270,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:270,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:276,9'
          Dst:             freerdp_settings_get_int16
        - Src:             'libfreerdp/common/settings_str.c:277,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:277,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:283,9'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings_str.c:284,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:284,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:290,9'
          Dst:             freerdp_settings_get_int32
        - Src:             'libfreerdp/common/settings_str.c:291,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:291,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:297,9'
          Dst:             freerdp_settings_get_uint64
        - Src:             'libfreerdp/common/settings_str.c:298,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:298,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:304,9'
          Dst:             freerdp_settings_get_int64
        - Src:             'libfreerdp/common/settings_str.c:305,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:305,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:311,9'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/common/settings_str.c:312,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:312,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:318,9'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/common/settings_str.c:319,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:319,5'
          Dst:             WLog_PrintTextMessage
    - functionName:    freerdp_settings_print_diff
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         145
      ICount:          682
      EdgeCount:       170
      CyclomaticComplexity: 27
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_get_bool
        - freerdp_settings_get_int16
        - freerdp_settings_get_int32
        - freerdp_settings_get_int64
        - freerdp_settings_get_pointer
        - freerdp_settings_get_string
        - freerdp_settings_get_uint16
        - freerdp_settings_get_uint32
        - freerdp_settings_get_uint64
        - strcmp
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_str.c:111,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_str.c:104,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_str.c:105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_str.c:106,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_str.c:116,9'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/common/settings_str.c:117,17'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/common/settings_str.c:121,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:121,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:129,9'
          Dst:             freerdp_settings_get_uint16
        - Src:             'libfreerdp/common/settings_str.c:131,9'
          Dst:             freerdp_settings_get_uint16
        - Src:             'libfreerdp/common/settings_str.c:135,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:135,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:143,9'
          Dst:             freerdp_settings_get_int16
        - Src:             'libfreerdp/common/settings_str.c:145,9'
          Dst:             freerdp_settings_get_int16
        - Src:             'libfreerdp/common/settings_str.c:149,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:149,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:157,9'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings_str.c:159,9'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings_str.c:163,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:163,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:171,9'
          Dst:             freerdp_settings_get_int32
        - Src:             'libfreerdp/common/settings_str.c:173,9'
          Dst:             freerdp_settings_get_int32
        - Src:             'libfreerdp/common/settings_str.c:177,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:177,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:185,9'
          Dst:             freerdp_settings_get_uint64
        - Src:             'libfreerdp/common/settings_str.c:187,9'
          Dst:             freerdp_settings_get_uint64
        - Src:             'libfreerdp/common/settings_str.c:191,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:191,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:199,9'
          Dst:             freerdp_settings_get_int64
        - Src:             'libfreerdp/common/settings_str.c:201,9'
          Dst:             freerdp_settings_get_int64
        - Src:             'libfreerdp/common/settings_str.c:205,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:205,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:213,9'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/common/settings_str.c:215,9'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/common/settings_str.c:218,29'
          Dst:             strcmp
        - Src:             'libfreerdp/common/settings_str.c:221,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:221,7'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/common/settings_str.c:229,9'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/common/settings_str.c:231,9'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/common/settings_str.c:237,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/common/settings_str.c:237,7'
          Dst:             WLog_PrintTextMessage
    - functionName:    freerdp_settings_clone_keys
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/settings_str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         55
      ICount:          346
      EdgeCount:       66
      CyclomaticComplexity: 13
      functionsReached:
        - freerdp_settings_get_bool
        - freerdp_settings_get_int16
        - freerdp_settings_get_int32
        - freerdp_settings_get_int64
        - freerdp_settings_get_pointer
        - freerdp_settings_get_string
        - freerdp_settings_get_uint16
        - freerdp_settings_get_uint32
        - freerdp_settings_get_uint64
        - freerdp_settings_set_bool
        - freerdp_settings_set_int16
        - freerdp_settings_set_int32
        - freerdp_settings_set_int64
        - freerdp_settings_set_pointer
        - freerdp_settings_set_string_copy_
        - freerdp_settings_set_uint16
        - freerdp_settings_set_uint32
        - freerdp_settings_set_uint64
        - strlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/common/settings_str.c:14,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/common/settings_str.c:8,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_str.c:9,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/common/settings_str.c:18,17'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/common/settings_str.c:19,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/common/settings_str.c:26,9'
          Dst:             freerdp_settings_get_uint16
        - Src:             'libfreerdp/common/settings_str.c:27,10'
          Dst:             freerdp_settings_set_uint16
        - Src:             'libfreerdp/common/settings_str.c:33,18'
          Dst:             freerdp_settings_get_int16
        - Src:             'libfreerdp/common/settings_str.c:34,10'
          Dst:             freerdp_settings_set_int16
        - Src:             'libfreerdp/common/settings_str.c:41,9'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/common/settings_str.c:42,10'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/common/settings_str.c:48,18'
          Dst:             freerdp_settings_get_int32
        - Src:             'libfreerdp/common/settings_str.c:49,10'
          Dst:             freerdp_settings_set_int32
        - Src:             'libfreerdp/common/settings_str.c:56,9'
          Dst:             freerdp_settings_get_uint64
        - Src:             'libfreerdp/common/settings_str.c:57,10'
          Dst:             freerdp_settings_set_uint64
        - Src:             'libfreerdp/common/settings_str.c:63,18'
          Dst:             freerdp_settings_get_int64
        - Src:             'libfreerdp/common/settings_str.c:64,10'
          Dst:             freerdp_settings_set_int64
        - Src:             'libfreerdp/common/settings_str.c:71,9'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/common/settings_str.c:74,12'
          Dst:             strlen
        - Src:             'libfreerdp/common/settings_str.c:75,10'
          Dst:             freerdp_settings_set_string_copy_
        - Src:             'libfreerdp/common/settings_str.c:85,10'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/common/settings_str.c:86,11'
          Dst:             freerdp_settings_set_pointer
    - functionName:    pem_pwd_cb
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          297
      EdgeCount:       90
      CyclomaticComplexity: 15
      functionsReached:
        - strlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:130,15'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/privatekey.c:131,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:131,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:132,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:132,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:135,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:135,9'
          Dst:             winpr_int_assert
    - functionName:    freerdp_key_get_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 643
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          109
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - BIO_free_all
        - BIO_new
        - BIO_s_mem
        - EVP_aes_256_xts
        - PEM_write_bio_PrivateKey
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - x509_utils_bio_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:607,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:616,21'
          Dst:             BIO_s_mem
        - Src:             'libfreerdp/crypto/privatekey.c:616,13'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/privatekey.c:620,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:628,9'
          Dst:             EVP_aes_256_xts
        - Src:             'libfreerdp/crypto/privatekey.c:630,21'
          Dst:             PEM_write_bio_PrivateKey
        - Src:             'libfreerdp/crypto/privatekey.c:634,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:638,8'
          Dst:             x509_utils_bio_read
        - Src:             'libfreerdp/crypto/privatekey.c:641,2'
          Dst:             BIO_free_all
    - functionName:    BIO_s_mem
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      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:    26
      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:    12
      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_aes_256_xts
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PEM_write_bio_PrivateKey
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    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:    30
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_key_digest_sign
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 592
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_DigestSign_Init
        - winpr_Digest_Free
        - winpr_Digest_New
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:593,29'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/crypto/privatekey.c:597,7'
          Dst:             winpr_DigestSign_Init
        - Src:             'libfreerdp/crypto/privatekey.c:599,3'
          Dst:             winpr_Digest_Free
    - functionName:    freerdp_key_get_param
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          244
      EdgeCount:       64
      CyclomaticComplexity: 10
      functionsReached:
        - BN_bn2bin
        - BN_dup
        - BN_free
        - BN_num_bits
        - EVP_PKEY_get0_RSA
        - RSA_get0_d
        - RSA_get0_e
        - RSA_get0_n
        - calloc
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:535,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:502,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:503,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:530,20'
          Dst:             EVP_PKEY_get0_RSA
        - Src:             'libfreerdp/crypto/privatekey.c:539,11'
          Dst:             RSA_get0_d
        - Src:             'libfreerdp/crypto/privatekey.c:544,11'
          Dst:             RSA_get0_e
        - Src:             'libfreerdp/crypto/privatekey.c:549,11'
          Dst:             RSA_get0_n
        - Src:             'libfreerdp/crypto/privatekey.c:557,8'
          Dst:             BN_dup
        - Src:             'libfreerdp/crypto/privatekey.c:563,21'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/privatekey.c:569,9'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/privatekey.c:576,21'
          Dst:             BN_bn2bin
        - Src:             'libfreerdp/crypto/privatekey.c:583,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:583,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:587,2'
          Dst:             BN_free
    - functionName:    EVP_PKEY_get0_RSA
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RSA_get0_d
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RSA_get0_e
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RSA_get0_n
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_dup
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_num_bits
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_bn2bin
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_key_generate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 411
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          169
      EdgeCount:       29
      CyclomaticComplexity: 10
      functionsReached:
        - BN_clear_free
        - BN_secure_new
        - BN_set_word
        - EVP_PKEY_assign
        - EVP_PKEY_free
        - EVP_PKEY_new
        - RSA_free
        - RSA_generate_key_ex
        - RSA_new
        - WLog_Print_dbg_tag
        - strncmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:416,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:419,6'
          Dst:             strncmp
        - Src:             'libfreerdp/crypto/privatekey.c:421,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:426,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:440,16'
          Dst:             BN_secure_new
        - Src:             'libfreerdp/crypto/privatekey.c:445,9'
          Dst:             RSA_new
        - Src:             'libfreerdp/crypto/privatekey.c:449,4'
          Dst:             BN_clear_free
        - Src:             'libfreerdp/crypto/privatekey.c:453,3'
          Dst:             BN_set_word
        - Src:             'libfreerdp/crypto/privatekey.c:454,19'
          Dst:             RSA_generate_key_ex
        - Src:             'libfreerdp/crypto/privatekey.c:455,3'
          Dst:             BN_clear_free
        - Src:             'libfreerdp/crypto/privatekey.c:462,2'
          Dst:             EVP_PKEY_free
        - Src:             'libfreerdp/crypto/privatekey.c:463,13'
          Dst:             EVP_PKEY_new
        - Src:             'libfreerdp/crypto/privatekey.c:465,7'
          Dst:             EVP_PKEY_assign
        - Src:             'libfreerdp/crypto/privatekey.c:467,3'
          Dst:             EVP_PKEY_free
        - Src:             'libfreerdp/crypto/privatekey.c:469,3'
          Dst:             RSA_free
    - functionName:    BN_secure_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RSA_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_clear_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_set_word
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RSA_generate_key_ex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_assign
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RSA_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    evp_pkey_to_rsa
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - BIO_free_all
        - BIO_new
        - BIO_s_secmem
        - PEM_read_bio_RSAPrivateKey
        - PEM_write_bio_PrivateKey
        - WLog_Print_dbg_tag
        - freerdp_key_is_rsa
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:96,7'
          Dst:             freerdp_key_is_rsa
        - Src:             'libfreerdp/crypto/privatekey.c:98,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:107,6'
          Dst:             BIO_s_secmem
        - Src:             'libfreerdp/crypto/privatekey.c:103,13'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/privatekey.c:112,17'
          Dst:             PEM_write_bio_PrivateKey
        - Src:             'libfreerdp/crypto/privatekey.c:115,8'
          Dst:             PEM_read_bio_RSAPrivateKey
        - Src:             'libfreerdp/crypto/privatekey.c:117,2'
          Dst:             BIO_free_all
    - functionName:    freerdp_key_is_rsa
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          62
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_PKEY_id
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:385,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:389,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:390,10'
          Dst:             EVP_PKEY_id
    - functionName:    BIO_s_secmem
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PEM_read_bio_RSAPrivateKey
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_id
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_key_get_bits
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          110
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - RSA_bits
        - RSA_free
        - evp_pkey_to_rsa
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:397,13'
          Dst:             evp_pkey_to_rsa
        - Src:             'libfreerdp/crypto/privatekey.c:400,8'
          Dst:             RSA_bits
        - Src:             'libfreerdp/crypto/privatekey.c:401,3'
          Dst:             RSA_free
        - Src:             'libfreerdp/crypto/privatekey.c:407,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:407,9'
          Dst:             winpr_int_assert
    - functionName:    RSA_bits
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_key_get_evp_pkey
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          48
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_PKEY_up_ref
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:375,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:378,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:379,2'
          Dst:             EVP_PKEY_up_ref
    - functionName:    EVP_PKEY_up_ref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_key_get_exponent
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          71
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_key_is_rsa
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:360,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:361,7'
          Dst:             freerdp_key_is_rsa
    - functionName:    freerdp_key_get_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          44
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_key_is_rsa
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:352,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:353,7'
          Dst:             freerdp_key_is_rsa
    - functionName:    freerdp_key_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          135
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - EVP_PKEY_up_ref
        - calloc
        - cert_info_clone
        - freerdp_key_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:301,40'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/privatekey.c:311,3'
          Dst:             EVP_PKEY_up_ref
        - Src:             'libfreerdp/crypto/privatekey.c:325,7'
          Dst:             cert_info_clone
        - Src:             'libfreerdp/crypto/privatekey.c:332,2'
          Dst:             freerdp_key_free
    - functionName:    freerdp_key_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - EVP_PKEY_free
        - cert_info_free
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:342,2'
          Dst:             EVP_PKEY_free
        - Src:             'libfreerdp/crypto/privatekey.c:346,2'
          Dst:             cert_info_free
    - functionName:    freerdp_key_new_from_file_enc
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          71
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - evp_pkey_utils_from_pem
        - freerdp_key_free
        - freerdp_key_new
        - key_read_private
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:276,23'
          Dst:             freerdp_key_new
        - Src:             'libfreerdp/crypto/privatekey.c:280,46'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/privatekey.c:280,13'
          Dst:             evp_pkey_utils_from_pem
        - Src:             'libfreerdp/crypto/privatekey.c:283,7'
          Dst:             key_read_private
        - Src:             'libfreerdp/crypto/privatekey.c:287,2'
          Dst:             freerdp_key_free
    - functionName:    freerdp_key_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - calloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:293,9'
          Dst:             calloc
    - functionName:    evp_pkey_utils_from_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          91
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - BIO_free_all
        - BIO_new_file
        - BIO_new_mem_buf
        - PEM_read_bio_PrivateKey
        - WLog_Print_dbg_tag
        - pem_pwd_cb
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:144,9'
          Dst:             BIO_new_file
        - Src:             'libfreerdp/crypto/privatekey.c:149,9'
          Dst:             BIO_new_mem_buf
        - Src:             'libfreerdp/crypto/privatekey.c:154,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:158,8'
          Dst:             PEM_read_bio_PrivateKey
        - Src:             'libfreerdp/crypto/privatekey.c:158,8'
          Dst:             pem_pwd_cb
        - Src:             'libfreerdp/crypto/privatekey.c:160,2'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/crypto/privatekey.c:162,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    key_read_private
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          148
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - BN_num_bits
        - RSA_check_key
        - RSA_free
        - RSA_get0_key
        - WLog_Print_dbg_tag
        - __errno_location
        - cert_info_create
        - evp_pkey_to_rsa
        - freerdp_key_is_rsa
        - read_bignum
        - winpr_int_assert
        - winpr_strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:188,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:171,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:172,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:175,7'
          Dst:             freerdp_key_is_rsa
        - Src:             'libfreerdp/crypto/privatekey.c:179,13'
          Dst:             evp_pkey_to_rsa
        - Src:             'libfreerdp/crypto/privatekey.c:183,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/crypto/privatekey.c:183,3'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/crypto/privatekey.c:183,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:188,10'
          Dst:             RSA_check_key
        - Src:             'libfreerdp/crypto/privatekey.c:191,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:201,4'
          Dst:             __errno_location
        - Src:             'libfreerdp/crypto/privatekey.c:201,4'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/crypto/privatekey.c:201,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:211,2'
          Dst:             RSA_get0_key
        - Src:             'libfreerdp/crypto/privatekey.c:224,6'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/privatekey.c:226,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:230,7'
          Dst:             read_bignum
        - Src:             'libfreerdp/crypto/privatekey.c:233,7'
          Dst:             cert_info_create
        - Src:             'libfreerdp/crypto/privatekey.c:238,2'
          Dst:             RSA_free
    - functionName:    RSA_check_key
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RSA_get0_key
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_new_file
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_new_mem_buf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PEM_read_bio_PrivateKey
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_key_new_from_file
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_key_new_from_file_enc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:271,9'
          Dst:             freerdp_key_new_from_file_enc
    - functionName:    freerdp_key_new_from_pem_enc
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          71
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - evp_pkey_utils_from_pem
        - freerdp_key_free
        - freerdp_key_new
        - key_read_private
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:254,23'
          Dst:             freerdp_key_new
        - Src:             'libfreerdp/crypto/privatekey.c:258,42'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/privatekey.c:258,13'
          Dst:             evp_pkey_utils_from_pem
        - Src:             'libfreerdp/crypto/privatekey.c:261,7'
          Dst:             key_read_private
        - Src:             'libfreerdp/crypto/privatekey.c:265,2'
          Dst:             freerdp_key_free
    - functionName:    freerdp_key_new_from_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_key_new_from_pem_enc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:249,9'
          Dst:             freerdp_key_new_from_pem_enc
    - functionName:    sk_X509_push
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_push
    - functionName:    OPENSSL_sk_push
      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:    sk_X509_new_null
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_new_null
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_new_null
    - functionName:    OPENSSL_sk_new_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:    extract_chain_from_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1386
      functionLinenumberEnd: 1430
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          183
      EdgeCount:       48
      CyclomaticComplexity: 11
      functionsReached:
        - BIO_free
        - BIO_new_file
        - BIO_new_mem_buf
        - PEM_read_bio_X509
        - X509_free
        - sk_X509_new_null
        - sk_X509_push
        - strlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1394,9'
          Dst:             BIO_new_file
        - Src:             'libfreerdp/crypto/certificate.c:1397,22'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/certificate.c:1398,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1398,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1398,9'
          Dst:             BIO_new_mem_buf
        - Src:             'libfreerdp/crypto/certificate.c:1406,15'
          Dst:             PEM_read_bio_X509
        - Src:             'libfreerdp/crypto/certificate.c:1409,3'
          Dst:             BIO_free
        - Src:             'libfreerdp/crypto/certificate.c:1413,26'
          Dst:             sk_X509_new_null
        - Src:             'libfreerdp/crypto/certificate.c:1416,3'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/certificate.c:1417,3'
          Dst:             BIO_free
        - Src:             'libfreerdp/crypto/certificate.c:1422,17'
          Dst:             PEM_read_bio_X509
        - Src:             'libfreerdp/crypto/certificate.c:1424,3'
          Dst:             sk_X509_push
        - Src:             'libfreerdp/crypto/certificate.c:1427,2'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/certificate.c:1428,2'
          Dst:             BIO_free
    - functionName:    PEM_read_bio_X509
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_free
      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:    X509_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cert_blob_copy
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1142
      functionLinenumberEnd: 1157
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          94
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - cert_blob_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1143,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1144,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1146,2'
          Dst:             cert_blob_free
    - functionName:    cert_blob_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cert_x509_chain_copy
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1160
      functionLinenumberEnd: 1190
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          126
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - cert_blob_copy
        - certificate_free_x509_certificate_chain
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1161,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1163,2'
          Dst:             certificate_free_x509_certificate_chain
        - Src:             'libfreerdp/crypto/certificate.c:1169,17'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate.c:1181,9'
          Dst:             cert_blob_copy
        - Src:             'libfreerdp/crypto/certificate.c:1183,5'
          Dst:             certificate_free_x509_certificate_chain
    - functionName:    certificate_free_x509_certificate_chain
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 488
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          72
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - cert_blob_free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:481,4'
          Dst:             cert_blob_free
    - functionName:    sk_X509_pop_free
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_pop_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_pop_free
    - functionName:    OPENSSL_sk_pop_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    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:    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:    1
      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:    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:    certificate_read_x509_certificate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         81
      ICount:          406
      EdgeCount:       108
      CyclomaticComplexity: 29
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_SafeSeekEx
        - Stream_StaticConstInit
        - WLog_Print_dbg_tag
        - ber_read_bit_string
        - ber_read_contextual_tag
        - ber_read_integer
        - ber_read_integer_length
        - ber_read_sequence_tag
        - cert_info_free
        - cert_info_read_exponent
        - cert_info_read_modulus
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:305,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:306,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:308,2'
          Dst:             cert_info_free
        - Src:             'libfreerdp/crypto/certificate.c:310,6'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/crypto/certificate.c:315,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:320,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:325,7'
          Dst:             ber_read_contextual_tag
        - Src:             'libfreerdp/crypto/certificate.c:330,7'
          Dst:             ber_read_integer
        - Src:             'libfreerdp/crypto/certificate.c:337,7'
          Dst:             ber_read_integer
        - Src:             'libfreerdp/crypto/certificate.c:343,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:344,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:350,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:350,45'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:356,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:356,45'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:362,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:362,45'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:368,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:374,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:375,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:381,7'
          Dst:             ber_read_bit_string
        - Src:             'libfreerdp/crypto/certificate.c:387,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:392,7'
          Dst:             ber_read_integer_length
        - Src:             'libfreerdp/crypto/certificate.c:400,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:403,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/certificate.c:407,9'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:416,7'
          Dst:             cert_info_read_modulus
        - Src:             'libfreerdp/crypto/certificate.c:421,7'
          Dst:             ber_read_integer_length
        - Src:             'libfreerdp/crypto/certificate.c:426,7'
          Dst:             cert_info_read_exponent
        - Src:             'libfreerdp/crypto/certificate.c:430,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:432,2'
          Dst:             cert_info_free
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 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:    33
      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:    cert_blob_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          95
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - cert_blob_free
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:233,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:234,2'
          Dst:             cert_blob_free
        - Src:             'libfreerdp/crypto/certificate.c:236,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:239,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:241,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:250,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/crypto/certificate.c:256,2'
          Dst:             cert_blob_free
    - functionName:    stream_read_u32_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 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:    8
      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
      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:    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:    certificate_new_x509_certificate_chain
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          80
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:445,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:450,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/crypto/certificate.c:456,40'
          Dst:             calloc
    - functionName:    update_x509_from_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 547
      functionLinenumberEnd: 670
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          180
      EdgeCount:       46
      CyclomaticComplexity: 11
      functionsReached:
        - BN_bin2bn
        - BN_free
        - BN_new
        - RSA_free
        - RSA_new
        - RSA_set0_key
        - WLog_Print_dbg_tag
        - X509_free
        - winpr_int_assert
        - x509_from_rsa
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:550,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:552,2'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/certificate.c:557,14'
          Dst:             BN_new
        - Src:             'libfreerdp/crypto/certificate.c:558,16'
          Dst:             BN_new
        - Src:             'libfreerdp/crypto/certificate.c:560,13'
          Dst:             RSA_new
        - Src:             'libfreerdp/crypto/certificate.c:563,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:570,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:575,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:576,7'
          Dst:             BN_bin2bn
        - Src:             'libfreerdp/crypto/certificate.c:578,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:582,7'
          Dst:             BN_bin2bn
        - Src:             'libfreerdp/crypto/certificate.c:584,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:589,18'
          Dst:             RSA_set0_key
        - Src:             'libfreerdp/crypto/certificate.c:592,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:596,15'
          Dst:             x509_from_rsa
        - Src:             'libfreerdp/crypto/certificate.c:659,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:663,3'
          Dst:             RSA_free
        - Src:             'libfreerdp/crypto/certificate.c:667,3'
          Dst:             BN_free
        - Src:             'libfreerdp/crypto/certificate.c:668,3'
          Dst:             BN_free
    - functionName:    BN_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_bin2bn
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RSA_set0_key
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    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:    certificate_process_server_public_signature
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 740
      functionLinenumberEnd: 827
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Read
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:741,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:766,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/crypto/certificate.c:770,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    certificate_process_server_public_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 675
      functionLinenumberEnd: 735
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          213
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - Stream_Seek
        - WLog_Print_dbg_tag
        - cert_info_free
        - memcmp
        - realloc
        - stream_read_u32_le
        - update_x509_from_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:681,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:682,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:684,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:687,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/crypto/certificate.c:689,6'
          Dst:             memcmp
        - Src:             'libfreerdp/crypto/certificate.c:691,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:696,2'
          Dst:             cert_info_free
        - Src:             'libfreerdp/crypto/certificate.c:698,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:699,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:700,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:701,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/crypto/certificate.c:705,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:708,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:712,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:718,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:723,14'
          Dst:             realloc
        - Src:             'libfreerdp/crypto/certificate.c:727,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:732,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/crypto/certificate.c:733,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/crypto/certificate.c:734,9'
          Dst:             update_x509_from_info
    - functionName:    memcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    50
      BranchProfiles:  []
      Callsites:       []
    - 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:    cert_blob_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          95
      EdgeCount:       27
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:262,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:264,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:267,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:268,2'
          Dst:             Stream_Write
    - functionName:    Stream_Write_UINT32_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 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:    8
      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
      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:    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_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_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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1242,3'
          Dst:             Stream_Fill
    - functionName:    cert_write_rsa_signature
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 936
      functionLinenumberEnd: 955
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          93
      EdgeCount:       33
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Zero
        - crypto_rsa_private_encrypt
        - winpr_Digest
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:941,7'
          Dst:             winpr_Digest
        - Src:             'libfreerdp/crypto/certificate.c:944,6'
          Dst:             crypto_rsa_private_encrypt
        - Src:             'libfreerdp/crypto/certificate.c:948,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:950,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:951,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:952,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/crypto/certificate.c:953,2'
          Dst:             Stream_Zero
    - 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:    cert_write_rsa_public_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 907
      functionLinenumberEnd: 933
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         80
      ICount:          254
      EdgeCount:       81
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Zero
        - freerdp_certificate_is_rsa
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:908,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:909,2'
          Dst:             freerdp_certificate_is_rsa
        - Src:             'libfreerdp/crypto/certificate.c:909,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:921,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:922,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:924,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:924,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:924,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:925,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/crypto/certificate.c:926,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:926,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:926,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:927,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:927,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:927,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:928,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:928,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:928,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:929,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/crypto/certificate.c:930,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/crypto/certificate.c:931,2'
          Dst:             Stream_Zero
    - functionName:    freerdp_certificate_is_rsa
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1800
      functionLinenumberEnd: 1802
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - is_rsa_key
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1801,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1802,9'
          Dst:             is_rsa_key
    - functionName:    is_rsa_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_PKEY_id
        - X509_get0_pubkey
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:287,18'
          Dst:             X509_get0_pubkey
        - Src:             'libfreerdp/crypto/certificate.c:291,10'
          Dst:             EVP_PKEY_id
    - functionName:    X509_get0_pubkey
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    freerdp_certificate_get_chain_at
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1885
      functionLinenumberEnd: 1889
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          124
      EdgeCount:       39
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_certificate_get_chain_len
        - sk_X509_value
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1886,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1887,2'
          Dst:             freerdp_certificate_get_chain_len
        - Src:             'libfreerdp/crypto/certificate.c:1887,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1888,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1888,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1889,9'
          Dst:             sk_X509_value
    - functionName:    freerdp_certificate_get_chain_len
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1876
      functionLinenumberEnd: 1882
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          117
      EdgeCount:       37
      CyclomaticComplexity: 6
      functionsReached:
        - sk_X509_num
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1877,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1881,9'
          Dst:             sk_X509_num
        - Src:             'libfreerdp/crypto/certificate.c:1881,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1881,9'
          Dst:             winpr_int_assert
    - functionName:    sk_X509_value
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_value
    - functionName:    OPENSSL_sk_value
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sk_X509_num
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_num
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_num
    - functionName:    OPENSSL_sk_num
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_get_RSA
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1757
      functionLinenumberEnd: 1768
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          58
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - EVP_PKEY_get1_RSA
        - X509_get0_pubkey
        - freerdp_certificate_is_rsa
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1758,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1760,7'
          Dst:             freerdp_certificate_is_rsa
        - Src:             'libfreerdp/crypto/certificate.c:1763,21'
          Dst:             X509_get0_pubkey
        - Src:             'libfreerdp/crypto/certificate.c:1767,9'
          Dst:             EVP_PKEY_get1_RSA
    - functionName:    EVP_PKEY_get1_RSA
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_get_param
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1818
      functionLinenumberEnd: 1873
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          178
      EdgeCount:       47
      CyclomaticComplexity: 5
      functionsReached:
        - BN_bn2bin
        - BN_num_bits
        - RSA_free
        - RSA_get0_key
        - calloc
        - freerdp_certificate_get_RSA
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1827,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1819,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1820,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1826,13'
          Dst:             freerdp_certificate_get_RSA
        - Src:             'libfreerdp/crypto/certificate.c:1830,4'
          Dst:             RSA_get0_key
        - Src:             'libfreerdp/crypto/certificate.c:1833,4'
          Dst:             RSA_get0_key
        - Src:             'libfreerdp/crypto/certificate.c:1836,4'
          Dst:             RSA_free
        - Src:             'libfreerdp/crypto/certificate.c:1839,2'
          Dst:             RSA_free
        - Src:             'libfreerdp/crypto/certificate.c:1861,24'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/certificate.c:1861,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1861,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1862,13'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate.c:1865,2'
          Dst:             BN_bn2bin
    - functionName:    freerdp_certificate_is_rdp_security_compatible
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1806
      functionLinenumberEnd: 1814
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_certificate_get_info
        - freerdp_certificate_is_rsa
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1807,28'
          Dst:             freerdp_certificate_get_info
        - Src:             'libfreerdp/crypto/certificate.c:1808,7'
          Dst:             freerdp_certificate_is_rsa
        - Src:             'libfreerdp/crypto/certificate.c:1810,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_certificate_get_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1456
      functionLinenumberEnd: 1461
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          44
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_certificate_is_rsa
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1457,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1458,7'
          Dst:             freerdp_certificate_is_rsa
    - functionName:    freerdp_certificate_get_der
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1772
      functionLinenumberEnd: 1797
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          179
      EdgeCount:       51
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
        - i2d_X509
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1773,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1778,17'
          Dst:             i2d_X509
        - Src:             'libfreerdp/crypto/certificate.c:1782,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1782,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1782,14'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate.c:1787,18'
          Dst:             i2d_X509
    - functionName:    i2d_X509
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_publickey_encrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1716
      functionLinenumberEnd: 1753
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         63
      ICount:          238
      EdgeCount:       72
      CyclomaticComplexity: 11
      functionsReached:
        - EVP_PKEY_CTX_free
        - EVP_PKEY_CTX_new
        - EVP_PKEY_encrypt
        - EVP_PKEY_encrypt_init
        - EVP_PKEY_size
        - RSA_pkey_ctx_ctrl
        - WLog_Print_dbg_tag
        - X509_get0_pubkey
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1717,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1718,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1719,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1720,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1724,19'
          Dst:             X509_get0_pubkey
        - Src:             'libfreerdp/crypto/certificate.c:1728,22'
          Dst:             EVP_PKEY_CTX_new
        - Src:             'libfreerdp/crypto/certificate.c:1732,22'
          Dst:             EVP_PKEY_size
        - Src:             'libfreerdp/crypto/certificate.c:1732,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1732,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1738,6'
          Dst:             EVP_PKEY_encrypt_init
        - Src:             'libfreerdp/crypto/certificate.c:1739,6'
          Dst:             RSA_pkey_ctx_ctrl
        - Src:             'libfreerdp/crypto/certificate.c:1740,6'
          Dst:             EVP_PKEY_encrypt
        - Src:             'libfreerdp/crypto/certificate.c:1742,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1750,2'
          Dst:             EVP_PKEY_CTX_free
    - functionName:    EVP_PKEY_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_size
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_encrypt_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RSA_pkey_ctx_ctrl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_encrypt
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_get_x509
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1709
      functionLinenumberEnd: 1711
      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:             'libfreerdp/crypto/certificate.c:1710,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_certificate_get_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1703
      functionLinenumberEnd: 1705
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1704,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1705,16'
          Dst:             x509_utils_get_hash
    - functionName:    freerdp_certificate_free_dns_names
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1698
      functionLinenumberEnd: 1700
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - x509_utils_dns_names_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1699,2'
          Dst:             x509_utils_dns_names_free
    - functionName:    freerdp_certificate_get_signature_alg
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1692
      functionLinenumberEnd: 1694
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_signature_alg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1693,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1694,9'
          Dst:             x509_utils_get_signature_alg
    - functionName:    freerdp_certificate_get_common_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1686
      functionLinenumberEnd: 1688
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_common_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1687,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1688,9'
          Dst:             x509_utils_get_common_name
    - functionName:    freerdp_certificate_get_dns_names
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1680
      functionLinenumberEnd: 1682
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_dns_names
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1681,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1682,9'
          Dst:             x509_utils_get_dns_names
    - functionName:    freerdp_certificate_verify
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1673
      functionLinenumberEnd: 1675
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_verify
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1674,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1675,9'
          Dst:             x509_utils_verify
    - functionName:    freerdp_certificate_get_public_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1627
      functionLinenumberEnd: 1669
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          184
      EdgeCount:       50
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Print_dbg_tag
        - X509_get0_pubkey
        - calloc
        - i2d_PublicKey
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1634,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1636,9'
          Dst:             X509_get0_pubkey
        - Src:             'libfreerdp/crypto/certificate.c:1640,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1644,11'
          Dst:             i2d_PublicKey
        - Src:             'libfreerdp/crypto/certificate.c:1648,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1652,42'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1652,42'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1652,35'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate.c:1658,23'
          Dst:             i2d_PublicKey
    - functionName:    i2d_PublicKey
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_check_eku
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1620
      functionLinenumberEnd: 1622
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_check_eku
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1621,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1622,9'
          Dst:             x509_utils_check_eku
    - functionName:    freerdp_certificate_get_validity
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1614
      functionLinenumberEnd: 1616
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_date
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1615,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1616,9'
          Dst:             x509_utils_get_date
    - functionName:    freerdp_certificate_get_email
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1608
      functionLinenumberEnd: 1610
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_email
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1609,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1610,9'
          Dst:             x509_utils_get_email
    - functionName:    freerdp_certificate_get_upn
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1602
      functionLinenumberEnd: 1604
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_upn
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1603,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1604,9'
          Dst:             x509_utils_get_upn
    - functionName:    freerdp_certificate_get_issuer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1596
      functionLinenumberEnd: 1598
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_issuer
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1597,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1598,9'
          Dst:             x509_utils_get_issuer
    - functionName:    freerdp_certificate_get_subject
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1590
      functionLinenumberEnd: 1592
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_subject
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1591,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1592,9'
          Dst:             x509_utils_get_subject
    - functionName:    freerdp_certificate_get_pem_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1540
      functionLinenumberEnd: 1587
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          148
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - BIO_free_all
        - BIO_new
        - BIO_s_mem
        - PEM_write_bio_X509
        - WLog_Print_dbg_tag
        - sk_X509_num
        - sk_X509_value
        - winpr_int_assert
        - x509_utils_bio_read
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1541,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1550,21'
          Dst:             BIO_s_mem
        - Src:             'libfreerdp/crypto/certificate.c:1550,13'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/certificate.c:1554,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1560,21'
          Dst:             PEM_write_bio_X509
        - Src:             'libfreerdp/crypto/certificate.c:1563,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1569,21'
          Dst:             sk_X509_num
        - Src:             'libfreerdp/crypto/certificate.c:1572,14'
          Dst:             sk_X509_value
        - Src:             'libfreerdp/crypto/certificate.c:1573,19'
          Dst:             PEM_write_bio_X509
        - Src:             'libfreerdp/crypto/certificate.c:1576,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1582,8'
          Dst:             x509_utils_bio_read
        - Src:             'libfreerdp/crypto/certificate.c:1585,2'
          Dst:             BIO_free_all
    - functionName:    PEM_write_bio_X509
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_get_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1534
      functionLinenumberEnd: 1535
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_certificate_get_pem_ex
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1535,9'
          Dst:             freerdp_certificate_get_pem_ex
    - functionName:    freerdp_certificate_get_fingerprint_by_hash_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1475
      functionLinenumberEnd: 1531
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          208
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - snprintf
        - x509_utils_get_hash
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1483,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1489,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1492,7'
          Dst:             x509_utils_get_hash
        - Src:             'libfreerdp/crypto/certificate.c:1500,14'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate.c:1513,10'
          Dst:             snprintf
        - Src:             'libfreerdp/crypto/certificate.c:1515,10'
          Dst:             snprintf
        - Src:             'libfreerdp/crypto/certificate.c:1521,9'
          Dst:             snprintf
    - functionName:    freerdp_certificate_get_fingerprint_by_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1469
      functionLinenumberEnd: 1470
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_certificate_get_fingerprint_by_hash_ex
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1470,9'
          Dst:             freerdp_certificate_get_fingerprint_by_hash_ex
    - functionName:    freerdp_certificate_get_fingerprint
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1464
      functionLinenumberEnd: 1465
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_certificate_get_fingerprint_by_hash
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1465,9'
          Dst:             freerdp_certificate_get_fingerprint_by_hash
    - functionName:    freerdp_certificate_new_from_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1451
      functionLinenumberEnd: 1452
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_certificate_new_from
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1452,9'
          Dst:             freerdp_certificate_new_from
    - functionName:    freerdp_certificate_new_from
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1433
      functionLinenumberEnd: 1443
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - X509_free
        - extract_chain_from_pem
        - freerdp_certificate_new_from_x509
        - sk_X509_pop_free
        - strlen
        - x509_utils_from_pem
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1434,41'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/certificate.c:1434,15'
          Dst:             x509_utils_from_pem
        - Src:             'libfreerdp/crypto/certificate.c:1437,26'
          Dst:             extract_chain_from_pem
        - Src:             'libfreerdp/crypto/certificate.c:1438,25'
          Dst:             freerdp_certificate_new_from_x509
        - Src:             'libfreerdp/crypto/certificate.c:1440,3'
          Dst:             sk_X509_pop_free
        - Src:             'libfreerdp/crypto/certificate.c:1440,3'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/certificate.c:1441,2'
          Dst:             X509_free
    - functionName:    freerdp_certificate_new_from_x509
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1361
      functionLinenumberEnd: 1383
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          95
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - X509_const_dup
        - X509_dup
        - X509_free
        - freerdp_certificate_free
        - freerdp_certificate_new
        - freerdp_rsa_from_x509
        - sk_X509_deep_copy
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1362,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1364,25'
          Dst:             freerdp_certificate_new
        - Src:             'libfreerdp/crypto/certificate.c:1369,15'
          Dst:             X509_dup
        - Src:             'libfreerdp/crypto/certificate.c:1373,7'
          Dst:             freerdp_rsa_from_x509
        - Src:             'libfreerdp/crypto/certificate.c:1377,17'
          Dst:             sk_X509_deep_copy
        - Src:             'libfreerdp/crypto/certificate.c:1377,17'
          Dst:             X509_const_dup
        - Src:             'libfreerdp/crypto/certificate.c:1377,17'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/certificate.c:1381,2'
          Dst:             freerdp_certificate_free
    - functionName:    freerdp_certificate_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1253
      functionLinenumberEnd: 1254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - calloc
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1254,26'
          Dst:             calloc
    - functionName:    X509_dup
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_rsa_from_x509
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1285
      functionLinenumberEnd: 1336
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          109
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - EVP_PKEY_get1_RSA
        - RSA_free
        - RSA_get0_key
        - X509_get0_pubkey
        - cert_info_create
        - freerdp_certificate_is_rsa
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1288,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1290,7'
          Dst:             freerdp_certificate_is_rsa
        - Src:             'libfreerdp/crypto/certificate.c:1301,21'
          Dst:             X509_get0_pubkey
        - Src:             'libfreerdp/crypto/certificate.c:1306,8'
          Dst:             EVP_PKEY_get1_RSA
        - Src:             'libfreerdp/crypto/certificate.c:1316,2'
          Dst:             RSA_get0_key
        - Src:             'libfreerdp/crypto/certificate.c:1325,7'
          Dst:             cert_info_create
        - Src:             'libfreerdp/crypto/certificate.c:1330,2'
          Dst:             RSA_free
    - functionName:    X509_const_dup
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/opensslcompat.h'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - X509_dup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/opensslcompat.h:117,9'
          Dst:             X509_dup
    - functionName:    sk_X509_deep_copy
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_deep_copy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_deep_copy
    - functionName:    freerdp_certificate_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1276
      functionLinenumberEnd: 1282
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - certificate_free_int
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1280,2'
          Dst:             certificate_free_int
    - functionName:    certificate_free_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1258
      functionLinenumberEnd: 1268
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          65
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - X509_free
        - cert_info_free
        - certificate_free_x509_certificate_chain
        - sk_X509_pop_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1259,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1262,3'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/certificate.c:1264,3'
          Dst:             sk_X509_pop_free
        - Src:             'libfreerdp/crypto/certificate.c:1264,3'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/certificate.c:1266,2'
          Dst:             certificate_free_x509_certificate_chain
        - Src:             'libfreerdp/crypto/certificate.c:1267,2'
          Dst:             cert_info_free
    - functionName:    OPENSSL_sk_deep_copy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_new_from_file
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1446
      functionLinenumberEnd: 1447
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_certificate_new_from
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1447,9'
          Dst:             freerdp_certificate_new_from
    - functionName:    freerdp_certificate_new_from_der
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1339
      functionLinenumberEnd: 1358
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          89
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - d2i_X509
        - freerdp_certificate_free
        - freerdp_certificate_new
        - freerdp_rsa_from_x509
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1340,25'
          Dst:             freerdp_certificate_new
        - Src:             'libfreerdp/crypto/certificate.c:1347,16'
          Dst:             d2i_X509
        - Src:             'libfreerdp/crypto/certificate.c:1352,7'
          Dst:             freerdp_rsa_from_x509
        - Src:             'libfreerdp/crypto/certificate.c:1356,2'
          Dst:             freerdp_certificate_free
    - functionName:    d2i_X509
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cert_clone_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1193
      functionLinenumberEnd: 1225
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          136
      EdgeCount:       38
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - X509_const_dup
        - X509_dup
        - X509_free
        - cert_info_clone
        - cert_x509_chain_copy
        - sk_X509_deep_copy
        - sk_X509_pop_free
        - update_x509_from_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1194,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1195,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1197,7'
          Dst:             cert_info_clone
        - Src:             'libfreerdp/crypto/certificate.c:1202,15'
          Dst:             X509_dup
        - Src:             'libfreerdp/crypto/certificate.c:1209,9'
          Dst:             update_x509_from_info
        - Src:             'libfreerdp/crypto/certificate.c:1211,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1220,4'
          Dst:             sk_X509_pop_free
        - Src:             'libfreerdp/crypto/certificate.c:1220,4'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/certificate.c:1222,16'
          Dst:             sk_X509_deep_copy
        - Src:             'libfreerdp/crypto/certificate.c:1222,16'
          Dst:             X509_const_dup
        - Src:             'libfreerdp/crypto/certificate.c:1222,16'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/certificate.c:1224,9'
          Dst:             cert_x509_chain_copy
    - functionName:    freerdp_certificate_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1228
      functionLinenumberEnd: 1245
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - cert_clone_int
        - freerdp_certificate_free
        - freerdp_certificate_new
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1232,33'
          Dst:             freerdp_certificate_new
        - Src:             'libfreerdp/crypto/certificate.c:1237,7'
          Dst:             cert_clone_int
        - Src:             'libfreerdp/crypto/certificate.c:1243,2'
          Dst:             freerdp_certificate_free
    - functionName:    certificate_read_server_x509_certificate_chain
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1044
      functionLinenumberEnd: 1086
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          167
      EdgeCount:       47
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - cert_blob_read
        - certificate_free_x509_certificate_chain
        - certificate_new_x509_certificate_chain
        - certificate_read_x509_certificate
        - stream_read_u32_le
        - update_x509_from_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1048,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1049,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:1052,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:1053,2'
          Dst:             certificate_free_x509_certificate_chain
        - Src:             'libfreerdp/crypto/certificate.c:1054,7'
          Dst:             certificate_new_x509_certificate_chain
        - Src:             'libfreerdp/crypto/certificate.c:1060,8'
          Dst:             cert_blob_read
        - Src:             'libfreerdp/crypto/certificate.c:1067,15'
          Dst:             certificate_read_x509_certificate
        - Src:             'libfreerdp/crypto/certificate.c:1071,10'
          Dst:             update_x509_from_info
        - Src:             'libfreerdp/crypto/certificate.c:1077,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1085,9'
          Dst:             update_x509_from_info
    - functionName:    certificate_read_server_proprietary_certificate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 830
      functionLinenumberEnd: 903
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         66
      ICount:          289
      EdgeCount:       80
      CyclomaticComplexity: 16
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Pointer
        - WLog_Print_dbg_tag
        - certificate_process_server_public_key
        - certificate_process_server_public_signature
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:839,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:840,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:844,24'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/crypto/certificate.c:845,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:846,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:850,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:857,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/crypto/certificate.c:861,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:865,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/crypto/certificate.c:867,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:870,7'
          Dst:             certificate_process_server_public_key
        - Src:             'libfreerdp/crypto/certificate.c:873,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:876,15'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/crypto/certificate.c:876,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:876,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:877,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/crypto/certificate.c:881,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:885,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/crypto/certificate.c:887,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:892,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:896,7'
          Dst:             certificate_process_server_public_signature
        - Src:             'libfreerdp/crypto/certificate.c:899,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_certificate_read_server_cert
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1097
      functionLinenumberEnd: 1139
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          110
      EdgeCount:       27
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_StaticConstInit
        - WLog_Print_dbg_tag
        - certificate_read_server_proprietary_certificate
        - certificate_read_server_x509_certificate_chain
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1121,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1106,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1110,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1111,6'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/crypto/certificate.c:1115,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1119,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:1124,10'
          Dst:             certificate_read_server_proprietary_certificate
        - Src:             'libfreerdp/crypto/certificate.c:1128,10'
          Dst:             certificate_read_server_x509_certificate_chain
        - Src:             'libfreerdp/crypto/certificate.c:1132,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    cert_write_server_certificate_v2
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 977
      functionLinenumberEnd: 998
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          144
      EdgeCount:       38
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - Stream_Zero
        - cert_blob_write
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:978,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:983,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:986,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:986,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:986,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:990,8'
          Dst:             cert_blob_write
        - Src:             'libfreerdp/crypto/certificate.c:994,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:996,2'
          Dst:             Stream_Zero
    - functionName:    cert_write_server_certificate_v1
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 959
      functionLinenumberEnd: 974
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          112
      EdgeCount:       46
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Pointer
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - cert_write_rsa_public_key
        - cert_write_rsa_signature
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:960,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/crypto/certificate.c:961,24'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/crypto/certificate.c:963,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:964,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:966,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:967,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:968,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:969,7'
          Dst:             cert_write_rsa_public_key
        - Src:             'libfreerdp/crypto/certificate.c:972,21'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/crypto/certificate.c:973,9'
          Dst:             cert_write_rsa_signature
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    freerdp_certificate_write_server_cert
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1002
      functionLinenumberEnd: 1034
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          153
      EdgeCount:       42
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Write_UINT32_unchecked
        - WLog_Print_dbg_tag
        - cert_write_server_certificate_v1
        - cert_write_server_certificate_v2
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1011,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1006,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/crypto/certificate.c:1007,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:1009,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1009,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1009,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:1014,9'
          Dst:             cert_write_server_certificate_v1
        - Src:             'libfreerdp/crypto/certificate.c:1018,9'
          Dst:             cert_write_server_certificate_v2
        - Src:             'libfreerdp/crypto/certificate.c:1022,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1027,21'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/crypto/certificate.c:1032,2'
          Dst:             winpr_int_assert
    - functionName:    crypto_rsa_common
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      size_t
      argCount:        8
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         117
      ICount:          564
      EdgeCount:       148
      CyclomaticComplexity: 33
      functionsReached:
        - BN_CTX_free
        - BN_CTX_new
        - BN_bin2bn
        - BN_bn2bin
        - BN_clear_free
        - BN_free
        - BN_mod_exp
        - BN_new
        - BN_num_bits
        - calloc
        - crypto_reverse
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:68,25'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/crypto.c:76,2'
          Dst:             crypto_reverse
        - Src:             'libfreerdp/crypto/crypto.c:78,2'
          Dst:             crypto_reverse
        - Src:             'libfreerdp/crypto/crypto.c:80,2'
          Dst:             crypto_reverse
        - Src:             'libfreerdp/crypto/crypto.c:82,14'
          Dst:             BN_CTX_new
        - Src:             'libfreerdp/crypto/crypto.c:85,14'
          Dst:             BN_new
        - Src:             'libfreerdp/crypto/crypto.c:88,14'
          Dst:             BN_new
        - Src:             'libfreerdp/crypto/crypto.c:91,12'
          Dst:             BN_new
        - Src:             'libfreerdp/crypto/crypto.c:94,12'
          Dst:             BN_new
        - Src:             'libfreerdp/crypto/crypto.c:97,7'
          Dst:             BN_bin2bn
        - Src:             'libfreerdp/crypto/crypto.c:100,7'
          Dst:             BN_bin2bn
        - Src:             'libfreerdp/crypto/crypto.c:102,7'
          Dst:             BN_bin2bn
        - Src:             'libfreerdp/crypto/crypto.c:104,6'
          Dst:             BN_mod_exp
        - Src:             'libfreerdp/crypto/crypto.c:107,19'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/crypto.c:108,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:108,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:110,19'
          Dst:             BN_bn2bin
        - Src:             'libfreerdp/crypto/crypto.c:114,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:114,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:114,2'
          Dst:             crypto_reverse
        - Src:             'libfreerdp/crypto/crypto.c:118,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:118,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:125,2'
          Dst:             BN_free
        - Src:             'libfreerdp/crypto/crypto.c:126,2'
          Dst:             BN_clear_free
        - Src:             'libfreerdp/crypto/crypto.c:127,2'
          Dst:             BN_free
        - Src:             'libfreerdp/crypto/crypto.c:128,2'
          Dst:             BN_free
        - Src:             'libfreerdp/crypto/crypto.c:129,2'
          Dst:             BN_CTX_free
    - functionName:    crypto_reverse
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_mod_exp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    crypto_write_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          133
      EdgeCount:       39
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - __errno_location
        - fclose
        - fwrite
        - strnlen
        - winpr_fopen
        - winpr_int_assert
        - winpr_strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:254,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:255,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:257,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:258,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:260,22'
          Dst:             strnlen
        - Src:             'libfreerdp/crypto/crypto.c:262,13'
          Dst:             winpr_fopen
        - Src:             'libfreerdp/crypto/crypto.c:265,7'
          Dst:             fwrite
        - Src:             'libfreerdp/crypto/crypto.c:266,8'
          Dst:             fclose
        - Src:             'libfreerdp/crypto/crypto.c:271,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/crypto/crypto.c:271,3'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/crypto/crypto.c:271,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    fwrite
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    31
      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:    _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:    crypto_read_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         74
      ICount:          295
      EdgeCount:       89
      CyclomaticComplexity: 17
      functionsReached:
        - WLog_Print_dbg_tag
        - __errno_location
        - _fseeki64
        - _ftelli64
        - calloc
        - fclose
        - fread
        - strnlen
        - winpr_fopen
        - winpr_int_assert
        - winpr_strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:197,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:202,7'
          Dst:             winpr_fopen
        - Src:             'libfreerdp/crypto/crypto.c:207,18'
          Dst:             _fseeki64
        - Src:             'libfreerdp/crypto/crypto.c:213,24'
          Dst:             _ftelli64
        - Src:             'libfreerdp/crypto/crypto.c:218,19'
          Dst:             _fseeki64
        - Src:             'libfreerdp/crypto/crypto.c:223,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:223,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:223,9'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/crypto.c:228,22'
          Dst:             fread
        - Src:             'libfreerdp/crypto/crypto.c:234,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:234,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:234,15'
          Dst:             strnlen
        - Src:             'libfreerdp/crypto/crypto.c:236,8'
          Dst:             fclose
        - Src:             'libfreerdp/crypto/crypto.c:242,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/crypto/crypto.c:242,2'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/crypto/crypto.c:242,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/crypto.c:246,9'
          Dst:             fclose
    - functionName:    crypto_rsa_private_decrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - crypto_rsa_private
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:176,9'
          Dst:             crypto_rsa_private
    - functionName:    crypto_rsa_private
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - crypto_rsa_common
        - freerdp_key_get_exponent
        - freerdp_key_get_info
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:145,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:146,28'
          Dst:             freerdp_key_get_info
        - Src:             'libfreerdp/crypto/crypto.c:147,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:150,32'
          Dst:             freerdp_key_get_exponent
        - Src:             'libfreerdp/crypto/crypto.c:151,9'
          Dst:             crypto_rsa_common
    - functionName:    crypto_rsa_private_encrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - crypto_rsa_private
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:170,9'
          Dst:             crypto_rsa_private
    - functionName:    crypto_rsa_public_decrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - crypto_rsa_public
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:164,9'
          Dst:             crypto_rsa_public
    - functionName:    crypto_rsa_public
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - crypto_rsa_common
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:137,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:138,9'
          Dst:             crypto_rsa_common
    - functionName:    crypto_rsa_public_encrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - crypto_rsa_public
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:158,9'
          Dst:             crypto_rsa_public
    - functionName:    remove_rdpdr_type
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          61
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_device_collection_del
        - freerdp_device_collection_find_type
        - freerdp_device_free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:400,13'
          Dst:             freerdp_device_collection_find_type
        - Src:             'libfreerdp/core/utils.c:403,9'
          Dst:             freerdp_device_collection_del
        - Src:             'libfreerdp/core/utils.c:406,3'
          Dst:             freerdp_device_free
    - functionName:    isValidIPv6
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 612
      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:             'libfreerdp/core/utils.c:611,15'
          Dst:             inet_pton
    - 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:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    isValidIPv4
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 605
      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:             'libfreerdp/core/utils.c:604,15'
          Dst:             inet_pton
    - functionName:    utils_is_valid_ip
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 616
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - isValidIPv4
        - isValidIPv6
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:617,9'
          Dst:             isValidIPv4
        - Src:             'libfreerdp/core/utils.c:617,35'
          Dst:             isValidIPv6
    - functionName:    guid2str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 599
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - RpcStringFreeA
        - UuidToStringA
        - snprintf
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:591,25'
          Dst:             UuidToStringA
        - Src:             'libfreerdp/core/utils.c:596,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/utils.c:597,2'
          Dst:             RpcStringFreeA
    - functionName:    utils_reload_channels
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 583
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          139
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_channels_close
        - freerdp_channels_disconnect
        - freerdp_channels_free
        - freerdp_channels_new
        - freerdp_channels_pre_connect
        - freerdp_channels_register_instance
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:563,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:567,3'
          Dst:             freerdp_channels_disconnect
        - Src:             'libfreerdp/core/utils.c:568,3'
          Dst:             freerdp_channels_close
        - Src:             'libfreerdp/core/utils.c:569,3'
          Dst:             freerdp_channels_free
        - Src:             'libfreerdp/core/utils.c:572,22'
          Dst:             freerdp_channels_new
        - Src:             'libfreerdp/core/utils.c:576,2'
          Dst:             freerdp_channels_register_instance
        - Src:             'libfreerdp/core/utils.c:579,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/utils.c:581,10'
          Dst:             freerdp_channels_pre_connect
    - 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:    apply_gw_policy
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          30
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - utils_reload_channels
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:456,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:457,9'
          Dst:             utils_reload_channels
    - functionName:    disable_pnp
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    disable_port
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_settings_set_bool
        - remove_rdpdr_type
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:439,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/utils.c:441,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/utils.c:443,7'
          Dst:             remove_rdpdr_type
        - Src:             'libfreerdp/core/utils.c:445,9'
          Dst:             remove_rdpdr_type
    - functionName:    disable_clipboard
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_set_bool
        - freerdp_static_channel_collection_del
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:413,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/utils.c:415,2'
          Dst:             freerdp_static_channel_collection_del
    - functionName:    disable_printers
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_set_bool
        - remove_rdpdr_type
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:431,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/utils.c:434,9'
          Dst:             remove_rdpdr_type
    - functionName:    disable_drive
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_settings_set_bool
        - remove_rdpdr_type
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:421,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/utils.c:423,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/utils.c:426,9'
          Dst:             remove_rdpdr_type
    - functionName:    utils_redir_flags_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 558
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          145
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - snprintf
        - winpr_str_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:537,2'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/utils.c:539,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/utils.c:541,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/utils.c:543,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/utils.c:545,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/utils.c:547,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/utils.c:549,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/utils.c:551,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/utils.c:554,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/utils.c:556,2'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/utils.c:557,2'
          Dst:             winpr_str_append
    - functionName:    utils_apply_gateway_policy
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         129
      ICount:          456
      EdgeCount:       158
      CyclomaticComplexity: 31
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - apply_gw_policy
        - disable_clipboard
        - disable_drive
        - disable_pnp
        - disable_port
        - disable_printers
        - freerdp_settings_get_bool
        - utils_redir_flags_to_string
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:462,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:463,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:466,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:470,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/utils.c:470,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/utils.c:472,11'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/utils.c:475,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/utils.c:475,3'
          Dst:             utils_redir_flags_to_string
        - Src:             'libfreerdp/core/utils.c:475,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/utils.c:480,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/utils.c:480,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/utils.c:481,8'
          Dst:             disable_drive
        - Src:             'libfreerdp/core/utils.c:483,8'
          Dst:             disable_printers
        - Src:             'libfreerdp/core/utils.c:485,8'
          Dst:             disable_clipboard
        - Src:             'libfreerdp/core/utils.c:487,8'
          Dst:             disable_port
        - Src:             'libfreerdp/core/utils.c:489,8'
          Dst:             disable_pnp
        - Src:             'libfreerdp/core/utils.c:491,8'
          Dst:             apply_gw_policy
        - Src:             'libfreerdp/core/utils.c:498,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/utils.c:498,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/utils.c:499,9'
          Dst:             disable_drive
        - Src:             'libfreerdp/core/utils.c:504,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/utils.c:504,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/utils.c:505,9'
          Dst:             disable_printers
        - Src:             'libfreerdp/core/utils.c:510,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/utils.c:510,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/utils.c:511,9'
          Dst:             disable_port
        - Src:             'libfreerdp/core/utils.c:516,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/utils.c:516,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/utils.c:517,9'
          Dst:             disable_clipboard
        - Src:             'libfreerdp/core/utils.c:522,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/utils.c:522,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/utils.c:523,9'
          Dst:             disable_pnp
        - Src:             'libfreerdp/core/utils.c:528,9'
          Dst:             apply_gw_policy
    - functionName:    utils_is_vsock
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:389,6'
          Dst:             strncmp
    - functionName:    utils_abort_event_is_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - WaitForSingleObject
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:378,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:379,11'
          Dst:             WaitForSingleObject
    - functionName:    utils_get_abort_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 372
      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:             'libfreerdp/core/utils.c:371,2'
          Dst:             winpr_int_assert
    - functionName:    utils_reset_abort
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - ResetEvent
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:364,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:366,9'
          Dst:             ResetEvent
    - functionName:    utils_abort_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - SetEvent
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:359,9'
          Dst:             SetEvent
    - functionName:    utils_persist_credentials
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          87
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_copy_item
        - freerdp_settings_get_name_for_key
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:334,8'
          Dst:             freerdp_settings_copy_item
        - Src:             'libfreerdp/core/utils.c:336,4'
          Dst:             freerdp_settings_get_name_for_key
        - Src:             'libfreerdp/core/utils.c:336,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    utils_authenticate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         96
      ICount:          453
      EdgeCount:       118
      CyclomaticComplexity: 24
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_string
        - freerdp_shall_disconnect_context
        - utils_auth_skip
        - utils_copy_smartcard_settings
        - utils_str_copy
        - utils_str_is_empty
        - utils_sync_credentials
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/core/utils.c:216,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:192,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:193,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:194,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:195,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:196,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:201,6'
          Dst:             freerdp_shall_disconnect_context
        - Src:             'libfreerdp/core/utils.c:208,25'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/utils.c:208,6'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/utils.c:212,20'
          Dst:             utils_auth_skip
        - Src:             'libfreerdp/core/utils.c:222,10'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/utils.c:224,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/utils.c:273,6'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/utils.c:273,48'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/utils.c:276,7'
          Dst:             utils_sync_credentials
        - Src:             'libfreerdp/core/utils.c:280,7'
          Dst:             utils_str_copy
        - Src:             'libfreerdp/core/utils.c:282,7'
          Dst:             utils_str_copy
        - Src:             'libfreerdp/core/utils.c:284,7'
          Dst:             utils_str_copy
        - Src:             'libfreerdp/core/utils.c:286,7'
          Dst:             utils_sync_credentials
        - Src:             'libfreerdp/core/utils.c:289,7'
          Dst:             utils_copy_smartcard_settings
    - functionName:    utils_str_is_empty
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    24
      BranchProfiles:  []
      Callsites:       []
    - functionName:    utils_auth_skip
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          117
      EdgeCount:       29
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_get_string
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/utils.c:76,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:68,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:69,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:71,25'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/utils.c:73,25'
          Dst:             freerdp_settings_get_string
    - functionName:    utils_sync_credentials
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          138
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - utils_str_copy
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:297,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:303,8'
          Dst:             utils_str_copy
        - Src:             'libfreerdp/core/utils.c:305,8'
          Dst:             utils_str_copy
        - Src:             'libfreerdp/core/utils.c:307,8'
          Dst:             utils_str_copy
        - Src:             'libfreerdp/core/utils.c:312,8'
          Dst:             utils_str_copy
        - Src:             'libfreerdp/core/utils.c:314,8'
          Dst:             utils_str_copy
        - Src:             'libfreerdp/core/utils.c:316,8'
          Dst:             utils_str_copy
    - functionName:    utils_str_copy
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          55
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - _strdup
        - winpr_int_assert
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:40,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:47,11'
          Dst:             _strdup
    - functionName:    utils_copy_smartcard_settings
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - utils_str_copy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:56,7'
          Dst:             utils_str_copy
        - Src:             'libfreerdp/core/utils.c:58,7'
          Dst:             utils_str_copy
        - Src:             'libfreerdp/core/utils.c:60,7'
          Dst:             utils_str_copy
    - functionName:    utils_authenticate_gateway
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          375
      EdgeCount:       96
      CyclomaticComplexity: 21
      functionsReached:
        - freerdp_settings_get_string
        - freerdp_shall_disconnect_context
        - utils_auth_skip
        - utils_copy_smartcard_settings
        - utils_str_copy
        - utils_str_is_empty
        - utils_sync_credentials
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/utils.c:99,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:100,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:101,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:102,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/utils.c:108,6'
          Dst:             freerdp_shall_disconnect_context
        - Src:             'libfreerdp/core/utils.c:111,25'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/utils.c:111,6'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/utils.c:113,25'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/utils.c:113,6'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/utils.c:118,8'
          Dst:             utils_sync_credentials
        - Src:             'libfreerdp/core/utils.c:122,20'
          Dst:             utils_auth_skip
        - Src:             'libfreerdp/core/utils.c:162,6'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/utils.c:163,6'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/utils.c:166,7'
          Dst:             utils_sync_credentials
        - Src:             'libfreerdp/core/utils.c:170,7'
          Dst:             utils_str_copy
        - Src:             'libfreerdp/core/utils.c:172,7'
          Dst:             utils_str_copy
        - Src:             'libfreerdp/core/utils.c:174,7'
          Dst:             utils_str_copy
        - Src:             'libfreerdp/core/utils.c:176,7'
          Dst:             utils_sync_credentials
        - Src:             'libfreerdp/core/utils.c:179,7'
          Dst:             utils_copy_smartcard_settings
    - functionName:    freerdp_get_common_access_token
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1613
      functionLinenumberEnd: 1616
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          47
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1614,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1615,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_disconnect_reason_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1585
      functionLinenumberEnd: 1601
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/freerdp.c:1586,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    freerdp_persist_credentials
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1577
      functionLinenumberEnd: 1582
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          53
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - utils_persist_credentials
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1580,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1581,9'
          Dst:             utils_persist_credentials
    - functionName:    freerdp_is_valid_mcs_create_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1560
      functionLinenumberEnd: 1573
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          84
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_StaticConstInit
        - mcs_recv_connect_response
        - test_mcs_free
        - test_mcs_new
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1563,15'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/core/freerdp.c:1565,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1566,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1568,16'
          Dst:             test_mcs_new
        - Src:             'libfreerdp/core/freerdp.c:1569,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1571,16'
          Dst:             mcs_recv_connect_response
        - Src:             'libfreerdp/core/freerdp.c:1572,2'
          Dst:             test_mcs_free
    - functionName:    test_mcs_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1521
      functionLinenumberEnd: 1540
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          59
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - freerdp_settings_free
        - freerdp_settings_new
        - freerdp_settings_set_bool
        - mcs_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1522,26'
          Dst:             freerdp_settings_new
        - Src:             'libfreerdp/core/freerdp.c:1523,24'
          Dst:             calloc
        - Src:             'libfreerdp/core/freerdp.c:1527,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/freerdp.c:1533,9'
          Dst:             mcs_new
        - Src:             'libfreerdp/core/freerdp.c:1537,2'
          Dst:             freerdp_settings_free
    - functionName:    test_mcs_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1506
      functionLinenumberEnd: 1518
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_settings_free
        - mcs_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1513,3'
          Dst:             freerdp_settings_free
        - Src:             'libfreerdp/core/freerdp.c:1517,2'
          Dst:             mcs_free
    - functionName:    freerdp_is_valid_mcs_create_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1543
      functionLinenumberEnd: 1556
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          84
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_StaticConstInit
        - mcs_recv_connect_initial
        - test_mcs_free
        - test_mcs_new
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1546,15'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/core/freerdp.c:1548,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1549,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1551,16'
          Dst:             test_mcs_new
        - Src:             'libfreerdp/core/freerdp.c:1552,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1554,16'
          Dst:             mcs_recv_connect_initial
        - Src:             'libfreerdp/core/freerdp.c:1555,2'
          Dst:             test_mcs_free
    - functionName:    freerdp_abort_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1500
      functionLinenumberEnd: 1502
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - utils_get_abort_event
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1501,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1502,9'
          Dst:             utils_get_abort_event
    - functionName:    freerdp_channels_from_mcs
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1494
      functionLinenumberEnd: 1496
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_channels_from_mcs
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1495,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1496,9'
          Dst:             rdp_channels_from_mcs
    - functionName:    freerdp_is_active_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1488
      functionLinenumberEnd: 1490
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_is_active_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1489,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1490,9'
          Dst:             rdp_is_active_state
    - functionName:    freerdp_state_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1483
      functionLinenumberEnd: 1484
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_state_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1484,9'
          Dst:             rdp_state_string
    - functionName:    freerdp_get_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1477
      functionLinenumberEnd: 1479
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_get_state
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1478,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1479,9'
          Dst:             rdp_get_state
    - functionName:    freerdp_get_io_callback_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1471
      functionLinenumberEnd: 1473
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_get_io_callback_context
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1472,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1473,9'
          Dst:             rdp_get_io_callback_context
    - functionName:    freerdp_set_io_callback_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1465
      functionLinenumberEnd: 1467
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_set_io_callback_context
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1466,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1467,9'
          Dst:             rdp_set_io_callback_context
    - functionName:    freerdp_set_io_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1459
      functionLinenumberEnd: 1461
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_set_io_callbacks
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1460,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1461,9'
          Dst:             rdp_set_io_callbacks
    - functionName:    freerdp_get_io_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1453
      functionLinenumberEnd: 1455
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_get_io_callbacks
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1454,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1455,9'
          Dst:             rdp_get_io_callbacks
    - functionName:    freerdp_io_callback_set_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1447
      functionLinenumberEnd: 1449
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_io_callback_set_event
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1448,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1449,9'
          Dst:             rdp_io_callback_set_event
    - functionName:    freerdp_nego_get_routing_token
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1439
      functionLinenumberEnd: 1444
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - nego_get_routing_token
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1443,22'
          Dst:             nego_get_routing_token
    - functionName:    setChannelError
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1426
      functionLinenumberEnd: 1436
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - SetEvent
        - vsnprintf
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1430,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1433,8'
          Dst:             vsnprintf
        - Src:             'libfreerdp/core/freerdp.c:1435,8'
          Dst:             SetEvent
    - 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:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    clearChannelError
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1417
      functionLinenumberEnd: 1422
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - ResetEvent
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1418,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1421,8'
          Dst:             ResetEvent
    - functionName:    getChannelErrorDescription
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1411
      functionLinenumberEnd: 1413
      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:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1412,2'
          Dst:             winpr_int_assert
    - functionName:    getChannelError
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1405
      functionLinenumberEnd: 1407
      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:             'libfreerdp/core/freerdp.c:1406,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_nla_FreeContextBuffer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1366
      functionLinenumberEnd: 1376
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          84
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - nla_FreeContextBuffer
        - transport_get_nla
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1367,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1368,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1372,9'
          Dst:             transport_get_nla
        - Src:             'libfreerdp/core/freerdp.c:1374,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1376,9'
          Dst:             nla_FreeContextBuffer
    - functionName:    freerdp_nla_QueryContextAttributes
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1352
      functionLinenumberEnd: 1362
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          87
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - nla_QueryContextAttributes
        - transport_get_nla
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1353,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1354,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1358,9'
          Dst:             transport_get_nla
        - Src:             'libfreerdp/core/freerdp.c:1360,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1362,9'
          Dst:             nla_QueryContextAttributes
    - functionName:    freerdp_nla_decrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1343
      functionLinenumberEnd: 1348
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - nla_decrypt
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1344,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1345,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1348,9'
          Dst:             nla_decrypt
    - functionName:    freerdp_nla_encrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1339
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - nla_encrypt
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1335,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1336,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1339,9'
          Dst:             nla_encrypt
    - functionName:    freerdp_get_nla_sspi_error
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1322
      functionLinenumberEnd: 1330
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          82
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - nla_get_sspi_error
        - transport_get_nla
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1323,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1324,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1325,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1329,9'
          Dst:             transport_get_nla
        - Src:             'libfreerdp/core/freerdp.c:1330,17'
          Dst:             nla_get_sspi_error
    - functionName:    freerdp_nla_revert_to_self
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1305
      functionLinenumberEnd: 1319
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - nla_revert_to_self
        - transport_get_nla
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1317,8'
          Dst:             transport_get_nla
        - Src:             'libfreerdp/core/freerdp.c:1318,9'
          Dst:             nla_revert_to_self
    - functionName:    freerdp_nla_impersonate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1288
      functionLinenumberEnd: 1302
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - nla_impersonate
        - transport_get_nla
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1300,8'
          Dst:             transport_get_nla
        - Src:             'libfreerdp/core/freerdp.c:1301,9'
          Dst:             nla_impersonate
    - functionName:    freerdp_get_transport_sent
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1280
      functionLinenumberEnd: 1284
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          65
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - transport_get_bytes_sent
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1281,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1282,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1283,14'
          Dst:             transport_get_bytes_sent
    - functionName:    freerdp_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1275
      functionLinenumberEnd: 1277
      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:    freerdp_send_channel_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 607
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - short
        - size_t
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          79
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_channel_send_packet
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:603,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:604,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:605,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:606,9'
          Dst:             rdp_channel_send_packet
    - functionName:    freerdp_send_channel_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          73
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_send_channel_data
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:594,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:595,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:596,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:597,9'
          Dst:             rdp_send_channel_data
    - functionName:    freerdp_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1256
      functionLinenumberEnd: 1268
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1258,23'
          Dst:             calloc
    - functionName:    freerdp_get_logon_error_info_data_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1246
      functionLinenumberEnd: 1249
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_get_logon_error_info_data
        - snprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1247,20'
          Dst:             freerdp_get_logon_error_info_data
        - Src:             'libfreerdp/core/freerdp.c:1248,8'
          Dst:             snprintf
    - functionName:    freerdp_get_logon_error_info_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1225
      functionLinenumberEnd: 1243
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/freerdp.c:1226,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    freerdp_get_logon_error_info_type
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1203
      functionLinenumberEnd: 1222
      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:   'libfreerdp/core/freerdp.c:1207,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    freerdp_get_logon_error_info_type_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1196
      functionLinenumberEnd: 1199
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_get_logon_error_info_type
        - snprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1197,20'
          Dst:             freerdp_get_logon_error_info_type
        - Src:             'libfreerdp/core/freerdp.c:1198,8'
          Dst:             snprintf
    - functionName:    freerdp_get_last_error_category
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1133
      functionLinenumberEnd: 1157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - freerdp_get_error_base_category
        - freerdp_get_error_connect_category
        - freerdp_get_error_info_category
        - rpc_error_to_category
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/core/freerdp.c:1138,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1141,13'
          Dst:             freerdp_get_error_base_category
        - Src:             'libfreerdp/core/freerdp.c:1145,13'
          Dst:             freerdp_get_error_info_category
        - Src:             'libfreerdp/core/freerdp.c:1149,13'
          Dst:             freerdp_get_error_connect_category
        - Src:             'libfreerdp/core/freerdp.c:1153,13'
          Dst:             rpc_error_to_category
    - functionName:    freerdp_get_last_error_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1105
      functionLinenumberEnd: 1129
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - freerdp_get_error_base_string
        - freerdp_get_error_connect_string
        - freerdp_get_error_info_string
        - rpc_error_to_string
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/core/freerdp.c:1110,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1113,13'
          Dst:             freerdp_get_error_base_string
        - Src:             'libfreerdp/core/freerdp.c:1117,13'
          Dst:             freerdp_get_error_info_string
        - Src:             'libfreerdp/core/freerdp.c:1121,13'
          Dst:             freerdp_get_error_connect_string
        - Src:             'libfreerdp/core/freerdp.c:1125,13'
          Dst:             rpc_error_to_string
    - functionName:    freerdp_get_last_error_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1077
      functionLinenumberEnd: 1101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - freerdp_get_error_base_name
        - freerdp_get_error_connect_name
        - freerdp_get_error_info_name
        - rpc_error_to_string
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/core/freerdp.c:1082,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1085,11'
          Dst:             freerdp_get_error_base_name
        - Src:             'libfreerdp/core/freerdp.c:1089,11'
          Dst:             freerdp_get_error_info_name
        - Src:             'libfreerdp/core/freerdp.c:1093,11'
          Dst:             freerdp_get_error_connect_name
        - Src:             'libfreerdp/core/freerdp.c:1097,11'
          Dst:             rpc_error_to_string
    - functionName:    freerdp_send_error_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1063
      functionLinenumberEnd: 1068
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rdp_send_error_info
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1067,9'
          Dst:             rdp_send_error_info
    - functionName:    freerdp_set_error_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1055
      functionLinenumberEnd: 1060
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rdp_set_error_info
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1059,2'
          Dst:             rdp_set_error_info
    - functionName:    freerdp_error_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1047
      functionLinenumberEnd: 1051
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          65
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1048,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1049,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1050,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_get_disconnect_ultimatum
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1041
      functionLinenumberEnd: 1043
      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:             'libfreerdp/core/freerdp.c:1042,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_context_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 967
      functionLinenumberEnd: 975
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          51
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - rdp_reset_runtime_settings
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:971,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:974,9'
          Dst:             rdp_reset_runtime_settings
    - functionName:    freerdp_context_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 986
      functionLinenumberEnd: 1038
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          152
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - CloseHandle
        - WLog_Print_dbg_tag
        - freerdp_channels_free
        - freerdp_client_codecs_free
        - graphics_free
        - metrics_free
        - rdp_free
        - stream_dump_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:997,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/freerdp.c:998,2'
          Dst:             rdp_free
        - Src:             'libfreerdp/core/freerdp.c:1002,2'
          Dst:             graphics_free
        - Src:             'libfreerdp/core/freerdp.c:1005,2'
          Dst:             metrics_free
        - Src:             'libfreerdp/core/freerdp.c:1009,9'
          Dst:             CloseHandle
        - Src:             'libfreerdp/core/freerdp.c:1015,2'
          Dst:             freerdp_channels_free
        - Src:             'libfreerdp/core/freerdp.c:1018,2'
          Dst:             freerdp_client_codecs_free
        - Src:             'libfreerdp/core/freerdp.c:1021,2'
          Dst:             stream_dump_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:    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:    freerdp_common_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 816
      functionLinenumberEnd: 865
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          216
      EdgeCount:       46
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/freerdp.c:825,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:819,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:830,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/freerdp.c:846,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/freerdp.c:862,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/freerdp.c:862,3'
          Dst:             freerdp_set_last_error_ex
    - functionName:    freerdp_get_last_error
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1071
      functionLinenumberEnd: 1073
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    56
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1072,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_set_last_error_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1162
      functionLinenumberEnd: 1193
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          154
      EdgeCount:       39
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_last_error_name
        - winpr_int_assert
      functionUses:    71
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1163,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1164,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1168,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/freerdp.c:1171,50'
          Dst:             freerdp_get_last_error_name
        - Src:             'libfreerdp/core/freerdp.c:1170,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/freerdp.c:1178,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/freerdp.c:1179,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/freerdp.c:1184,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/freerdp.c:1188,26'
          Dst:             freerdp_get_last_error_name
        - Src:             'libfreerdp/core/freerdp.c:1189,26'
          Dst:             freerdp_get_last_error_name
        - Src:             'libfreerdp/core/freerdp.c:1186,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    freerdp_set_common_access_token
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1605
      functionLinenumberEnd: 1609
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          50
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1606,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1607,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_context_new_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 868
      functionLinenumberEnd: 964
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         54
      ICount:          314
      EdgeCount:       69
      CyclomaticComplexity: 17
      functionsReached:
        - CreateEventA
        - PubSub_AddEventTypes
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - calloc
        - freerdp_channels_new
        - freerdp_common_context
        - freerdp_context_free
        - freerdp_set_common_access_token
        - graphics_new
        - metrics_new
        - rdp_new
        - stream_dump_new
        - update_register_client_callbacks
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:873,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:875,45'
          Dst:             calloc
        - Src:             'libfreerdp/core/freerdp.c:880,17'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/freerdp.c:890,21'
          Dst:             metrics_new
        - Src:             'libfreerdp/core/freerdp.c:895,8'
          Dst:             rdp_new
        - Src:             'libfreerdp/core/freerdp.c:906,2'
          Dst:             PubSub_AddEventTypes
        - Src:             'libfreerdp/core/freerdp.c:916,22'
          Dst:             graphics_new
        - Src:             'libfreerdp/core/freerdp.c:926,36'
          Dst:             calloc
        - Src:             'libfreerdp/core/freerdp.c:928,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/freerdp.c:928,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/freerdp.c:932,37'
          Dst:             CreateEventA
        - Src:             'libfreerdp/core/freerdp.c:934,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/freerdp.c:934,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/freerdp.c:938,2'
          Dst:             update_register_client_callbacks
        - Src:             'libfreerdp/core/freerdp.c:940,28'
          Dst:             freerdp_channels_new
        - Src:             'libfreerdp/core/freerdp.c:943,18'
          Dst:             stream_dump_new
        - Src:             'libfreerdp/core/freerdp.c:951,7'
          Dst:             freerdp_set_common_access_token
        - Src:             'libfreerdp/core/freerdp.c:951,7'
          Dst:             freerdp_common_context
        - Src:             'libfreerdp/core/freerdp.c:954,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/freerdp.c:962,2'
          Dst:             freerdp_context_free
    - functionName:    freerdp_context_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 810
      functionLinenumberEnd: 811
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_context_new_ex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:811,9'
          Dst:             freerdp_context_new_ex
    - functionName:    freerdp_get_build_revision
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 782
      functionLinenumberEnd: 783
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_get_build_config
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 768
      functionLinenumberEnd: 778
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_get_version_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 763
      functionLinenumberEnd: 764
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_get_version
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 751
      functionLinenumberEnd: 760
      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:    freerdp_set_focus
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 738
      functionLinenumberEnd: 748
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          65
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:741,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:742,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:745,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_focus_required
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 734
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          80
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:722,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:723,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:726,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_shall_disconnect_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 710
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - utils_abort_event_is_set
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:714,9'
          Dst:             utils_abort_event_is_set
    - functionName:    freerdp_shall_disconnect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 706
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_shall_disconnect_context
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:705,9'
          Dst:             freerdp_shall_disconnect_context
    - functionName:    freerdp_disconnect_before_reconnect_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_client_disconnect_and_clear
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:676,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:679,9'
          Dst:             rdp_client_disconnect_and_clear
    - functionName:    freerdp_disconnect_before_reconnect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 666
      functionLinenumberEnd: 668
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_disconnect_before_reconnect_context
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:667,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:668,9'
          Dst:             freerdp_disconnect_before_reconnect_context
    - functionName:    sig_abort_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_abort_connect_context
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:69,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/freerdp.c:72,3'
          Dst:             freerdp_abort_connect_context
    - functionName:    freerdp_abort_connect_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - utils_abort_connect
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:332,2'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/freerdp.c:332,2'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/freerdp.c:333,9'
          Dst:             utils_abort_connect
    - functionName:    freerdp_message_queue_process_pending_messages
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 566
      functionLinenumberEnd: 588
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          74
      EdgeCount:       37
      CyclomaticComplexity: 20
      functionsReached:
        - input_message_queue_process_pending_messages
        - update_message_queue_process_pending_messages
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/core/freerdp.c:575,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:570,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:573,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:578,13'
          Dst:             update_message_queue_process_pending_messages
        - Src:             'libfreerdp/core/freerdp.c:582,13'
          Dst:             input_message_queue_process_pending_messages
    - functionName:    freerdp_message_queue_process_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          78
      EdgeCount:       37
      CyclomaticComplexity: 20
      functionsReached:
        - input_message_queue_process_message
        - update_message_queue_process_message
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/core/freerdp.c:549,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:544,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:547,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:552,13'
          Dst:             update_message_queue_process_message
        - Src:             'libfreerdp/core/freerdp.c:556,13'
          Dst:             input_message_queue_process_message
    - functionName:    freerdp_get_message_queue_event_handle
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - MessageQueue_Event
        - freerdp_get_message_queue
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:531,25'
          Dst:             freerdp_get_message_queue
        - Src:             'libfreerdp/core/freerdp.c:534,11'
          Dst:             MessageQueue_Event
    - functionName:    freerdp_get_message_queue
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 498
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          83
      EdgeCount:       37
      CyclomaticComplexity: 20
      functionsReached:
        - input_cast
        - update_cast
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/freerdp.c:506,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:501,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:504,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:510,34'
          Dst:             update_cast
        - Src:             'libfreerdp/core/freerdp.c:517,32'
          Dst:             input_cast
    - functionName:    update_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.h:171,2'
          Dst:             winpr_int_assert
    - functionName:    input_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.h:56,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_prevent_session_lock
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 453
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         63
      ICount:          252
      EdgeCount:       73
      CyclomaticComplexity: 12
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_last_error
        - freerdp_input_send_mouse_event
        - freerdp_settings_get_uint32
        - input_cast
        - time
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:419,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:420,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:422,27'
          Dst:             input_cast
        - Src:             'libfreerdp/core/freerdp.c:425,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/freerdp.c:428,22'
          Dst:             time
        - Src:             'libfreerdp/core/freerdp.c:429,7'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:429,7'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:432,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/freerdp.c:432,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/freerdp.c:437,18'
          Dst:             freerdp_input_send_mouse_event
        - Src:             'libfreerdp/core/freerdp.c:441,9'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/freerdp.c:442,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/freerdp.c:442,6'
          Dst:             WLog_PrintTextMessage
    - functionName:    time
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    checkChannelErrorEvent
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1386
      functionLinenumberEnd: 1397
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          74
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WaitForSingleObject
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:1387,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:1389,6'
          Dst:             WaitForSingleObject
        - Src:             'libfreerdp/core/freerdp.c:1391,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/freerdp.c:1391,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    freerdp_check_event_handles
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         46
      ICount:          182
      EdgeCount:       55
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - checkChannelErrorEvent
        - freerdp_channels_check_fds
        - freerdp_check_fds
        - freerdp_get_last_error
        - freerdp_prevent_session_lock
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:457,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:459,16'
          Dst:             freerdp_check_fds
        - Src:             'libfreerdp/core/freerdp.c:463,7'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/freerdp.c:464,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/freerdp.c:464,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/freerdp.c:470,11'
          Dst:             freerdp_channels_check_fds
        - Src:             'libfreerdp/core/freerdp.c:474,7'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/freerdp.c:475,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/freerdp.c:475,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/freerdp.c:481,11'
          Dst:             checkChannelErrorEvent
        - Src:             'libfreerdp/core/freerdp.c:485,7'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/freerdp.c:486,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/freerdp.c:486,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/freerdp.c:492,11'
          Dst:             freerdp_prevent_session_lock
    - functionName:    freerdp_check_fds
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          136
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - PubSub_OnTerminate
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_check_fds
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:368,11'
          Dst:             rdp_check_fds
        - Src:             'libfreerdp/core/freerdp.c:374,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:376,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/freerdp.c:376,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/freerdp.c:379,7'
          Dst:             PubSub_OnTerminate
    - functionName:    PubSub_OnTerminate
      functionSourceFile: '/src/FreeRDP/include/freerdp/event.h'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - PubSub_OnEvent
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/event.h:82,2'
          Dst:             winpr_int_assert
        - Src:             'include/freerdp/event.h:82,2'
          Dst:             PubSub_OnEvent
    - functionName:    getChannelErrorEventHandle
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1380
      functionLinenumberEnd: 1382
      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:             'libfreerdp/core/freerdp.c:1381,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_get_event_handles
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 414
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          239
      EdgeCount:       64
      CyclomaticComplexity: 10
      functionsReached:
        - freerdp_channels_get_event_handle
        - freerdp_client_channel_get_registered_event_handles
        - getChannelErrorEventHandle
        - rdp_get_event_handles
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:391,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:392,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:393,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:395,21'
          Dst:             rdp_get_event_handles
        - Src:             'libfreerdp/core/freerdp.c:399,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:399,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:403,22'
          Dst:             freerdp_channels_get_event_handle
        - Src:             'libfreerdp/core/freerdp.c:404,22'
          Dst:             getChannelErrorEventHandle
        - Src:             'libfreerdp/core/freerdp.c:409,21'
          Dst:             freerdp_client_channel_get_registered_event_handles
    - functionName:    freerdp_abort_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_abort_connect_context
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:323,9'
          Dst:             freerdp_abort_connect_context
    - functionName:    freerdp_disconnect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 611
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          229
      EdgeCount:       54
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_channels_close
        - freerdp_del_signal_cleanup_handler
        - freerdp_get_last_error
        - mcs_send_disconnect_provider_ultimatum
        - pcap_close
        - rdp_client_disconnect
        - sig_abort_connect
        - update_cast
        - update_dump_stats
        - update_post_disconnect
        - utils_abort_connect
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:622,7'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/freerdp.c:624,10'
          Dst:             mcs_send_disconnect_provider_ultimatum
        - Src:             'libfreerdp/core/freerdp.c:629,2'
          Dst:             utils_abort_connect
        - Src:             'libfreerdp/core/freerdp.c:631,7'
          Dst:             rdp_client_disconnect
        - Src:             'libfreerdp/core/freerdp.c:637,8'
          Dst:             update_cast
        - Src:             'libfreerdp/core/freerdp.c:639,3'
          Dst:             update_post_disconnect
        - Src:             'libfreerdp/core/freerdp.c:642,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/freerdp.c:646,3'
          Dst:             update_dump_stats
        - Src:             'libfreerdp/core/freerdp.c:650,4'
          Dst:             pcap_close
        - Src:             'libfreerdp/core/freerdp.c:656,3'
          Dst:             freerdp_channels_close
        - Src:             'libfreerdp/core/freerdp.c:658,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/freerdp.c:660,2'
          Dst:             freerdp_del_signal_cleanup_handler
        - Src:             'libfreerdp/core/freerdp.c:660,2'
          Dst:             sig_abort_connect
    - functionName:    PubSub_OnConnectionResult
      functionSourceFile: '/src/FreeRDP/include/freerdp/event.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - PubSub_OnEvent
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/event.h:86,2'
          Dst:             winpr_int_assert
        - Src:             'include/freerdp/event.h:86,2'
          Dst:             PubSub_OnEvent
    - functionName:    Stream_ResetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1358,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    freerdp_reconnect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 683
      functionLinenumberEnd: 697
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          82
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_get_last_error
        - rdp_client_reconnect
        - utils_reset_abort
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:686,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:687,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:689,6'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/freerdp.c:694,7'
          Dst:             utils_reset_abort
        - Src:             'libfreerdp/core/freerdp.c:696,9'
          Dst:             rdp_client_reconnect
    - functionName:    freerdp_connect_begin
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         99
      ICount:          451
      EdgeCount:       117
      CyclomaticComplexity: 20
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - clearChannelError
        - freerdp_add_signal_cleanup_handler
        - freerdp_channels_register_instance
        - freerdp_get_keyboard_default_layout_for_locale
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - freerdp_settings_check_client_after_preconnect
        - freerdp_settings_enforce_consistency
        - freerdp_settings_enforce_monitor_exists
        - freerdp_settings_get_bool
        - freerdp_settings_get_uint32
        - freerdp_settings_print_warnings
        - freerdp_settings_set_default_order_support
        - freerdp_settings_set_uint32
        - rdp_client_connect
        - rdp_client_connection_state_string
        - rdp_set_backup_settings
        - sig_abort_connect
        - utils_reload_channels
        - utils_reset_abort
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/freerdp.c:142,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:96,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:100,2'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/freerdp.c:101,2'
          Dst:             clearChannelError
        - Src:             'libfreerdp/core/freerdp.c:102,7'
          Dst:             utils_reset_abort
        - Src:             'libfreerdp/core/freerdp.c:106,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:109,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:111,2'
          Dst:             freerdp_channels_register_instance
        - Src:             'libfreerdp/core/freerdp.c:113,7'
          Dst:             freerdp_settings_set_default_order_support
        - Src:             'libfreerdp/core/freerdp.c:116,7'
          Dst:             freerdp_add_signal_cleanup_handler
        - Src:             'libfreerdp/core/freerdp.c:116,7'
          Dst:             sig_abort_connect
        - Src:             'libfreerdp/core/freerdp.c:119,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/freerdp.c:122,2'
          Dst:             freerdp_settings_print_warnings
        - Src:             'libfreerdp/core/freerdp.c:124,12'
          Dst:             freerdp_settings_enforce_monitor_exists
        - Src:             'libfreerdp/core/freerdp.c:127,12'
          Dst:             freerdp_settings_enforce_consistency
        - Src:             'libfreerdp/core/freerdp.c:130,12'
          Dst:             freerdp_settings_check_client_after_preconnect
        - Src:             'libfreerdp/core/freerdp.c:133,12'
          Dst:             rdp_set_backup_settings
        - Src:             'libfreerdp/core/freerdp.c:135,12'
          Dst:             utils_reload_channels
        - Src:             'libfreerdp/core/freerdp.c:137,20'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/freerdp.c:138,27'
          Dst:             freerdp_get_keyboard_default_layout_for_locale
        - Src:             'libfreerdp/core/freerdp.c:140,20'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/freerdp.c:147,9'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/freerdp.c:150,9'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/freerdp.c:152,9'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/freerdp.c:163,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:164,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/freerdp.c:164,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/freerdp.c:166,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/freerdp.c:166,3'
          Dst:             rdp_client_connection_state_string
        - Src:             'libfreerdp/core/freerdp.c:166,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/freerdp.c:171,7'
          Dst:             rdp_client_connect
        - Src:             'libfreerdp/core/freerdp.c:174,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/freerdp.c:177,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:178,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/freerdp.c:178,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    freerdp_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/freerdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         121
      ICount:          584
      EdgeCount:       148
      CyclomaticComplexity: 29
      functionsReached:
        - PubSub_OnConnectionResult
        - Stream_Buffer
        - Stream_Release
        - Stream_ResetPosition
        - Stream_SetLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - freerdp_channels_post_connect
        - freerdp_connect_begin
        - freerdp_disconnect
        - freerdp_get_last_error
        - freerdp_reconnect
        - freerdp_set_last_error_ex
        - freerdp_settings_get_bool
        - freerdp_settings_get_string
        - pcap_close
        - pcap_get_next_record_content
        - pcap_get_next_record_header
        - pcap_has_next_record
        - pcap_open
        - pointer_cache_register_callbacks
        - transport_set_connected_event
        - transport_take_from_pool
        - update_begin_paint
        - update_cast
        - update_end_paint
        - update_post_connect
        - update_recv_surfcmds
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/freerdp.c:189,17'
          Dst:             freerdp_connect_begin
        - Src:             'libfreerdp/core/freerdp.c:193,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:194,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:197,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:198,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:203,29'
          Dst:             update_cast
        - Src:             'libfreerdp/core/freerdp.c:205,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/freerdp.c:208,8'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/freerdp.c:207,19'
          Dst:             pcap_open
        - Src:             'libfreerdp/core/freerdp.c:214,3'
          Dst:             pointer_cache_register_callbacks
        - Src:             'libfreerdp/core/freerdp.c:215,12'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/freerdp.c:219,14'
          Dst:             freerdp_channels_post_connect
        - Src:             'libfreerdp/core/freerdp.c:224,7'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/freerdp.c:225,13'
          Dst:             freerdp_reconnect
        - Src:             'libfreerdp/core/freerdp.c:230,48'
          Dst:             update_post_connect
        - Src:             'libfreerdp/core/freerdp.c:233,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:234,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/freerdp.c:234,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/freerdp.c:236,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/freerdp.c:236,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/freerdp.c:242,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/freerdp.c:245,33'
          Dst:             update_cast
        - Src:             'libfreerdp/core/freerdp.c:248,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/freerdp.c:250,7'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/freerdp.c:251,22'
          Dst:             pcap_open
        - Src:             'libfreerdp/core/freerdp.c:261,10'
          Dst:             pcap_has_next_record
        - Src:             'libfreerdp/core/freerdp.c:263,9'
          Dst:             pcap_get_next_record_header
        - Src:             'libfreerdp/core/freerdp.c:266,8'
          Dst:             transport_take_from_pool
        - Src:             'libfreerdp/core/freerdp.c:270,18'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/freerdp.c:271,9'
          Dst:             pcap_get_next_record_content
        - Src:             'libfreerdp/core/freerdp.c:273,9'
          Dst:             Stream_SetLength
        - Src:             'libfreerdp/core/freerdp.c:278,4'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/freerdp.c:280,9'
          Dst:             update_begin_paint
        - Src:             'libfreerdp/core/freerdp.c:284,10'
          Dst:             update_recv_surfcmds
        - Src:             'libfreerdp/core/freerdp.c:287,10'
          Dst:             update_end_paint
        - Src:             'libfreerdp/core/freerdp.c:291,4'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/freerdp.c:294,3'
          Dst:             pcap_close
        - Src:             'libfreerdp/core/freerdp.c:300,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/freerdp.c:303,12'
          Dst:             transport_set_connected_event
        - Src:             'libfreerdp/core/freerdp.c:308,6'
          Dst:             PubSub_OnConnectionResult
        - Src:             'libfreerdp/core/freerdp.c:312,3'
          Dst:             freerdp_disconnect
    - functionName:    graphics_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    graphics_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          112
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/graphics.c:172,27'
          Dst:             calloc
        - Src:             'libfreerdp/core/graphics.c:177,44'
          Dst:             calloc
        - Src:             'libfreerdp/core/graphics.c:186,46'
          Dst:             calloc
        - Src:             'libfreerdp/core/graphics.c:196,42'
          Dst:             calloc
    - functionName:    graphics_register_glyph
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          61
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/graphics.c:160,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/graphics.c:161,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/graphics.c:162,2'
          Dst:             winpr_int_assert
    - functionName:    Glyph_Alloc
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          158
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - calloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/graphics.c:127,21'
          Dst:             calloc
    - functionName:    graphics_register_pointer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          61
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/graphics.c:104,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/graphics.c:105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/graphics.c:106,2'
          Dst:             winpr_int_assert
    - functionName:    Pointer_Alloc
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/graphics.c:91,25'
          Dst:             calloc
    - functionName:    graphics_register_bitmap
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          61
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/graphics.c:78,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/graphics.c:79,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/graphics.c:80,2'
          Dst:             winpr_int_assert
    - functionName:    Bitmap_SetDimensions
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          55
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Bitmap_SetRectangle
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - short
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          49
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Bitmap_Free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Bitmap_Alloc
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/graphics.c:35,23'
          Dst:             calloc
    - functionName:    freerdp_channels_process_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 709
      functionLinenumberEnd: 759
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          244
      EdgeCount:       52
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_channels_find_channel_by_name
        - freerdp_channels_process_message_free
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:713,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:714,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:715,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:730,4'
          Dst:             freerdp_channels_process_message_free
        - Src:             'libfreerdp/core/client.c:733,28'
          Dst:             freerdp_channels_find_channel_by_name
        - Src:             'libfreerdp/core/client.c:742,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/client.c:752,7'
          Dst:             freerdp_channels_process_message_free
        - Src:             'libfreerdp/core/client.c:758,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_channels_process_message_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 674
      functionLinenumberEnd: 706
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          137
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:675,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_channels_find_channel_by_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          87
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - strncmp
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:78,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:84,7'
          Dst:             strncmp
    - 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:    11
      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:    channel_queue_message_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_channels_load_plugin
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1620
      functionLinenumberEnd: 1628
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_channels_client_load
        - freerdp_load_channel_addin_entry
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:1622,6'
          Dst:             freerdp_load_channel_addin_entry
        - Src:             'libfreerdp/core/client.c:1627,9'
          Dst:             freerdp_channels_client_load
    - functionName:    freerdp_channels_client_load
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1493
      functionLinenumberEnd: 1548
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          180
      EdgeCount:       37
      CyclomaticComplexity: 5
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - WLog_Print_dbg_tag
        - freerdp_channels_is_loaded
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:1494,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1495,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1496,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1497,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1501,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/client.c:1505,6'
          Dst:             freerdp_channels_is_loaded
        - Src:             'libfreerdp/core/client.c:1507,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/client.c:1535,2'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/client.c:1537,2'
          Dst:             LeaveCriticalSection
        - Src:             'libfreerdp/core/client.c:1543,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_channels_is_loaded
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1426
      functionLinenumberEnd: 1437
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          70
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:1427,2'
          Dst:             winpr_int_assert
    - functionName:    FreeRDP_VirtualChannelInit
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1128
      functionLinenumberEnd: 1212
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          425
      EdgeCount:       88
      CyclomaticComplexity: 22
      functionsReached:
        - HashTable_Insert
        - InterlockedIncrement
        - freerdp_channels_find_channel_open_data_by_name
        - freerdp_settings_get_pointer_array_writable
        - freerdp_settings_get_uint32
        - freerdp_settings_set_uint32
        - strncpy
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:1169,7'
          Dst:             freerdp_channels_find_channel_open_data_by_name
        - Src:             'libfreerdp/core/client.c:1184,25'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/client.c:1188,20'
          Dst:             InterlockedIncrement
        - Src:             'libfreerdp/core/client.c:1189,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1189,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1191,8'
          Dst:             HashTable_Insert
        - Src:             'libfreerdp/core/client.c:1195,3'
          Dst:             strncpy
        - Src:             'libfreerdp/core/client.c:1200,27'
          Dst:             freerdp_settings_get_pointer_array_writable
        - Src:             'libfreerdp/core/client.c:1202,4'
          Dst:             strncpy
        - Src:             'libfreerdp/core/client.c:1204,9'
          Dst:             freerdp_settings_set_uint32
    - functionName:    FreeRDP_VirtualChannelOpen
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1254
      functionLinenumberEnd: 1284
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          119
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - freerdp_channels_find_channel_open_data_by_name
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:1256,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1271,6'
          Dst:             freerdp_channels_find_channel_open_data_by_name
    - functionName:    FreeRDP_VirtualChannelClose
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1305
      functionLinenumberEnd: 1317
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - HashTable_GetItemValue
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:1307,6'
          Dst:             HashTable_GetItemValue
    - functionName:    FreeRDP_VirtualChannelWrite
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1377
      functionLinenumberEnd: 1423
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          151
      EdgeCount:       28
      CyclomaticComplexity: 10
      functionsReached:
        - HashTable_GetItemValue
        - MessageQueue_Dispatch
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:1379,6'
          Dst:             HashTable_GetItemValue
        - Src:             'libfreerdp/core/client.c:1416,7'
          Dst:             MessageQueue_Dispatch
    - functionName:    freerdp_channels_find_channel_open_data_by_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          74
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - strncmp
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:59,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:64,7'
          Dst:             strncmp
    - functionName:    FreeRDP_VirtualChannelWriteEx
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1322
      functionLinenumberEnd: 1373
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          164
      EdgeCount:       31
      CyclomaticComplexity: 11
      functionsReached:
        - HashTable_GetItemValue
        - MessageQueue_Dispatch
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:1333,6'
          Dst:             HashTable_GetItemValue
        - Src:             'libfreerdp/core/client.c:1366,7'
          Dst:             MessageQueue_Dispatch
    - functionName:    FreeRDP_VirtualChannelCloseEx
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1287
      functionLinenumberEnd: 1302
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          59
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HashTable_GetItemValue
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:1292,6'
          Dst:             HashTable_GetItemValue
    - functionName:    FreeRDP_VirtualChannelOpenEx
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1217
      functionLinenumberEnd: 1249
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          131
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - freerdp_channels_find_channel_open_data_by_name
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:1219,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1222,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1236,6'
          Dst:             freerdp_channels_find_channel_open_data_by_name
    - functionName:    FreeRDP_VirtualChannelInitEx
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1032
      functionLinenumberEnd: 1123
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         102
      ICount:          488
      EdgeCount:       119
      CyclomaticComplexity: 19
      functionsReached:
        - HashTable_Insert
        - InterlockedIncrement
        - freerdp_channels_find_channel_open_data_by_name
        - freerdp_settings_get_pointer_array_writable
        - freerdp_settings_get_uint32
        - strncpy
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:1043,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1046,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1065,7'
          Dst:             freerdp_channels_find_channel_open_data_by_name
        - Src:             'libfreerdp/core/client.c:1079,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1080,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1083,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1090,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1092,20'
          Dst:             InterlockedIncrement
        - Src:             'libfreerdp/core/client.c:1093,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1093,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1096,8'
          Dst:             HashTable_Insert
        - Src:             'libfreerdp/core/client.c:1103,3'
          Dst:             strncpy
        - Src:             'libfreerdp/core/client.c:1106,22'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/client.c:1107,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1110,27'
          Dst:             freerdp_settings_get_pointer_array_writable
        - Src:             'libfreerdp/core/client.c:1114,4'
          Dst:             strncpy
    - functionName:    freerdp_channels_is_loaded_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1440
      functionLinenumberEnd: 1451
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          70
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:1441,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_channels_client_load_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1552
      functionLinenumberEnd: 1612
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          199
      EdgeCount:       37
      CyclomaticComplexity: 5
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - WLog_Print_dbg_tag
        - freerdp_channels_is_loaded_ex
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:1553,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1554,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1555,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1556,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1560,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/client.c:1564,6'
          Dst:             freerdp_channels_is_loaded_ex
        - Src:             'libfreerdp/core/client.c:1566,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/client.c:1599,2'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/client.c:1601,2'
          Dst:             LeaveCriticalSection
        - Src:             'libfreerdp/core/client.c:1607,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_channels_client_stats
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1461
      functionLinenumberEnd: 1489
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          188
      EdgeCount:       48
      CyclomaticComplexity: 9
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:1462,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1467,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1467,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1468,35'
          Dst:             calloc
        - Src:             'libfreerdp/core/client.c:1480,37'
          Dst:             calloc
    - functionName:    freerdp_channel_client_stats_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1454
      functionLinenumberEnd: 1458
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PubSub_OnChannelTerminated
      functionSourceFile: '/src/FreeRDP/include/freerdp/event.h'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - PubSub_OnEvent
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/event.h:96,2'
          Dst:             winpr_int_assert
        - Src:             'include/freerdp/event.h:96,2'
          Dst:             PubSub_OnEvent
    - functionName:    freerdp_channels_close
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 976
      functionLinenumberEnd: 1027
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          258
      EdgeCount:       49
      CyclomaticComplexity: 7
      functionsReached:
        - HashTable_Remove
        - MessageQueue_PostQuit
        - PubSub_OnChannelTerminated
        - WLog_Print_dbg_tag
        - freerdp_channels_check_fds
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:977,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:978,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:980,2'
          Dst:             MessageQueue_PostQuit
        - Src:             'libfreerdp/core/client.c:981,2'
          Dst:             freerdp_channels_check_fds
        - Src:             'libfreerdp/core/client.c:1006,7'
          Dst:             PubSub_OnChannelTerminated
        - Src:             'libfreerdp/core/client.c:1008,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/client.c:1016,3'
          Dst:             HashTable_Remove
        - Src:             'libfreerdp/core/client.c:1023,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:1024,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_channels_check_fds
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 867
      functionLinenumberEnd: 872
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_channels_process_pending_messages
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:868,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:871,17'
          Dst:             freerdp_channels_process_pending_messages
    - functionName:    freerdp_channels_process_pending_messages
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 841
      functionLinenumberEnd: 861
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          107
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - HashTable_Foreach
        - MessageQueue_Event
        - WaitForSingleObject
        - channels_process
        - freerdp_channels_process_sync
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:845,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:848,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:850,43'
          Dst:             MessageQueue_Event
        - Src:             'libfreerdp/core/client.c:850,23'
          Dst:             WaitForSingleObject
        - Src:             'libfreerdp/core/client.c:853,8'
          Dst:             freerdp_channels_process_sync
        - Src:             'libfreerdp/core/client.c:857,7'
          Dst:             HashTable_Foreach
        - Src:             'libfreerdp/core/client.c:857,7'
          Dst:             channels_process
    - functionName:    freerdp_channels_process_sync
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 778
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          58
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - MessageQueue_Peek
        - freerdp_channels_process_message
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:770,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:772,9'
          Dst:             MessageQueue_Peek
        - Src:             'libfreerdp/core/client.c:774,8'
          Dst:             freerdp_channels_process_message
    - functionName:    channels_process
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 828
      functionLinenumberEnd: 838
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:833,2'
          Dst:             winpr_int_assert
    - functionName:    PubSub_OnChannelDisconnected
      functionSourceFile: '/src/FreeRDP/include/freerdp/event.h'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - PubSub_OnEvent
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/event.h:106,2'
          Dst:             winpr_int_assert
        - Src:             'include/freerdp/event.h:106,2'
          Dst:             PubSub_OnEvent
    - functionName:    freerdp_channels_disconnect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 932
      functionLinenumberEnd: 973
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          174
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - PubSub_OnChannelDisconnected
        - freerdp_channels_check_fds
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:935,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:940,2'
          Dst:             freerdp_channels_check_fds
        - Src:             'libfreerdp/core/client.c:964,7'
          Dst:             PubSub_OnChannelDisconnected
        - Src:             'libfreerdp/core/client.c:971,2'
          Dst:             freerdp_channels_check_fds
    - functionName:    freerdp_client_channel_get_registered_event_handles
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 904
      functionLinenumberEnd: 928
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          142
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - HashTable_Count
        - HashTable_GetKeys
        - HashTable_Lock
        - HashTable_Unlock
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:907,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:908,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:910,2'
          Dst:             HashTable_Lock
        - Src:             'libfreerdp/core/client.c:911,15'
          Dst:             HashTable_Count
        - Src:             'libfreerdp/core/client.c:915,25'
          Dst:             HashTable_GetKeys
        - Src:             'libfreerdp/core/client.c:927,2'
          Dst:             HashTable_Unlock
    - functionName:    freerdp_client_channel_unregister
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 891
      functionLinenumberEnd: 900
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - HashTable_Remove
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:894,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/client.c:899,9'
          Dst:             HashTable_Remove
    - functionName:    freerdp_client_channel_register
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 877
      functionLinenumberEnd: 888
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          78
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - HashTable_Insert
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:880,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/client.c:887,9'
          Dst:             HashTable_Insert
    - functionName:    freerdp_channels_get_event_handle
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 815
      functionLinenumberEnd: 825
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          65
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - MessageQueue_Event
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:819,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:822,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:824,9'
          Dst:             MessageQueue_Event
    - functionName:    freerdp_channels_find_channel_by_id
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          88
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:99,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_channels_get_name_by_id
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          80
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_channels_find_channel_by_id
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:663,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:664,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:666,6'
          Dst:             freerdp_channels_find_channel_by_id
    - functionName:    freerdp_channels_get_id_by_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 644
      functionLinenumberEnd: 656
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          88
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_channels_find_channel_by_name
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:648,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:649,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:651,6'
          Dst:             freerdp_channels_find_channel_by_name
    - functionName:    freerdp_channels_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - size_t
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          298
      EdgeCount:       69
      CyclomaticComplexity: 13
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_channels_find_channel_open_data_by_name
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:577,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/client.c:583,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:584,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:587,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:590,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:615,6'
          Dst:             freerdp_channels_find_channel_open_data_by_name
    - functionName:    freerdp_drdynvc_on_channel_detached
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          119
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - PubSub_OnChannelDetached
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:294,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:296,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:299,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:300,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:306,6'
          Dst:             PubSub_OnChannelDetached
    - functionName:    PubSub_OnChannelDetached
      functionSourceFile: '/src/FreeRDP/include/freerdp/event.h'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - PubSub_OnEvent
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/event.h:116,2'
          Dst:             winpr_int_assert
        - Src:             'include/freerdp/event.h:116,2'
          Dst:             PubSub_OnEvent
    - functionName:    freerdp_drdynvc_on_channel_attached
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          119
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - PubSub_OnChannelAttached
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:272,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:274,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:277,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:278,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:284,6'
          Dst:             PubSub_OnChannelAttached
    - functionName:    PubSub_OnChannelAttached
      functionSourceFile: '/src/FreeRDP/include/freerdp/event.h'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - PubSub_OnEvent
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/event.h:111,2'
          Dst:             winpr_int_assert
        - Src:             'include/freerdp/event.h:111,2'
          Dst:             PubSub_OnEvent
    - functionName:    freerdp_drdynvc_on_channel_disconnected
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          119
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - PubSub_OnChannelDisconnected
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:250,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:252,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:255,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:256,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:262,6'
          Dst:             PubSub_OnChannelDisconnected
    - functionName:    freerdp_drdynvc_on_channel_connected
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          119
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - PubSub_OnChannelConnected
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:222,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:225,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:228,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:229,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:235,6'
          Dst:             PubSub_OnChannelConnected
    - functionName:    PubSub_OnChannelConnected
      functionSourceFile: '/src/FreeRDP/include/freerdp/event.h'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - PubSub_OnEvent
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/event.h:101,2'
          Dst:             winpr_int_assert
        - Src:             'include/freerdp/event.h:101,2'
          Dst:             PubSub_OnEvent
    - functionName:    freerdp_channels_get_static_channel_interface
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 803
      functionLinenumberEnd: 811
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_channels_find_channel_open_data_by_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:806,6'
          Dst:             freerdp_channels_find_channel_open_data_by_name
    - functionName:    freerdp_channels_post_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 495
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         51
      ICount:          279
      EdgeCount:       57
      CyclomaticComplexity: 8
      functionsReached:
        - PubSub_OnChannelConnected
        - freerdp_channels_get_static_channel_interface
        - freerdp_settings_get_string
        - getChannelError
        - strnlen
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:498,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:499,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:500,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:501,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:505,6'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/client.c:506,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:507,32'
          Dst:             strnlen
        - Src:             'libfreerdp/core/client.c:534,11'
          Dst:             getChannelError
        - Src:             'libfreerdp/core/client.c:542,7'
          Dst:             PubSub_OnChannelConnected
        - Src:             'libfreerdp/core/client.c:549,45'
          Dst:             freerdp_channels_get_static_channel_interface
    - functionName:    freerdp_channels_detach
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         48
      ICount:          231
      EdgeCount:       53
      CyclomaticComplexity: 7
      functionsReached:
        - PubSub_OnChannelDetached
        - freerdp_settings_get_string
        - getChannelError
        - strnlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:431,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:437,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:439,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:440,25'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/client.c:441,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:442,32'
          Dst:             strnlen
        - Src:             'libfreerdp/core/client.c:470,11'
          Dst:             getChannelError
        - Src:             'libfreerdp/core/client.c:478,7'
          Dst:             PubSub_OnChannelDetached
    - functionName:    freerdp_channels_attach
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 424
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          228
      EdgeCount:       47
      CyclomaticComplexity: 7
      functionsReached:
        - PubSub_OnChannelAttached
        - freerdp_settings_get_string
        - getChannelError
        - strnlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:372,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:373,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:374,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:378,6'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/client.c:379,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:380,32'
          Dst:             strnlen
        - Src:             'libfreerdp/core/client.c:408,11'
          Dst:             getChannelError
        - Src:             'libfreerdp/core/client.c:416,7'
          Dst:             PubSub_OnChannelAttached
    - functionName:    PubSub_OnChannelInitialized
      functionSourceFile: '/src/FreeRDP/include/freerdp/event.h'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - PubSub_OnEvent
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/event.h:91,2'
          Dst:             winpr_int_assert
        - Src:             'include/freerdp/event.h:91,2'
          Dst:             PubSub_OnEvent
    - functionName:    freerdp_channels_pre_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          183
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - MessageQueue_Clear
        - PubSub_OnChannelInitialized
        - getChannelError
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:327,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:328,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:330,2'
          Dst:             MessageQueue_Clear
        - Src:             'libfreerdp/core/client.c:348,11'
          Dst:             getChannelError
        - Src:             'libfreerdp/core/client.c:358,7'
          Dst:             PubSub_OnChannelInitialized
    - functionName:    freerdp_channels_register_instance
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          45
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:313,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:314,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_channels_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - DeleteCriticalSection
        - HashTable_Free
        - MessageQueue_Free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:199,2'
          Dst:             HashTable_Free
        - Src:             'libfreerdp/core/client.c:201,2'
          Dst:             DeleteCriticalSection
        - Src:             'libfreerdp/core/client.c:205,3'
          Dst:             MessageQueue_Free
    - functionName:    channel_event_entry_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:144,28'
          Dst:             calloc
    - functionName:    channel_queue_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - channel_queue_message_free
        - freerdp_channels_process_message_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:126,2'
          Dst:             freerdp_channels_process_message_free
        - Src:             'libfreerdp/core/client.c:127,2'
          Dst:             channel_queue_message_free
    - functionName:    init_channel_handles_table
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - HashTable_New
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:134,21'
          Dst:             HashTable_New
    - functionName:    freerdp_channels_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          126
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - HashTable_New
        - HashTable_ValueObject
        - InitializeCriticalSectionAndSpinCount
        - MessageQueue_New
        - MessageQueue_Object
        - calloc
        - freerdp_channels_free
        - init_channel_handles_table
        - winpr_InitOnceExecuteOnce
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/client.c:153,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'libfreerdp/core/client.c:153,7'
          Dst:             init_channel_handles_table
        - Src:             'libfreerdp/core/client.c:158,27'
          Dst:             calloc
        - Src:             'libfreerdp/core/client.c:165,7'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'libfreerdp/core/client.c:169,20'
          Dst:             MessageQueue_New
        - Src:             'libfreerdp/core/client.c:174,8'
          Dst:             MessageQueue_Object
        - Src:             'libfreerdp/core/client.c:177,28'
          Dst:             HashTable_New
        - Src:             'libfreerdp/core/client.c:181,8'
          Dst:             HashTable_ValueObject
        - Src:             'libfreerdp/core/client.c:182,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/client.c:189,2'
          Dst:             freerdp_channels_free
    - functionName:    freerdp_codec_id_to_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/codecs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/codecs.c:288,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    freerdp_client_codecs_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/codecs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - codecs_free_int
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/codecs.c:278,2'
          Dst:             codecs_free_int
    - functionName:    codecs_free_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/codecs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          207
      EdgeCount:       57
      CyclomaticComplexity: 14
      functionsReached:
        - bitmap_interleaved_context_free
        - clear_context_free
        - freerdp_bitmap_planar_context_free
        - nsc_context_free
        - progressive_context_free
        - rfx_context_free
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/codecs.c:32,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/codecs.c:38,4'
          Dst:             rfx_context_free
        - Src:             'libfreerdp/core/codecs.c:47,4'
          Dst:             nsc_context_free
        - Src:             'libfreerdp/core/codecs.c:67,4'
          Dst:             clear_context_free
        - Src:             'libfreerdp/core/codecs.c:76,4'
          Dst:             progressive_context_free
        - Src:             'libfreerdp/core/codecs.c:85,4'
          Dst:             freerdp_bitmap_planar_context_free
        - Src:             'libfreerdp/core/codecs.c:94,4'
          Dst:             bitmap_interleaved_context_free
    - functionName:    codecs_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/codecs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_client_codecs_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/codecs.c:256,2'
          Dst:             freerdp_client_codecs_free
    - functionName:    freerdp_client_codecs_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/codecs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/codecs.c:263,34'
          Dst:             calloc
    - functionName:    codecs_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/codecs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_client_codecs_new
        - freerdp_settings_get_uint32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/codecs.c:250,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/codecs.c:251,9'
          Dst:             freerdp_client_codecs_new
    - functionName:    freerdp_client_codecs_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/codecs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          221
      EdgeCount:       55
      CyclomaticComplexity: 15
      functionsReached:
        - bitmap_interleaved_context_reset
        - clear_context_reset
        - freerdp_bitmap_planar_context_reset
        - nsc_context_reset
        - progressive_context_reset
        - rfx_context_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/codecs.c:181,10'
          Dst:             bitmap_interleaved_context_reset
        - Src:             'libfreerdp/core/codecs.c:189,10'
          Dst:             freerdp_bitmap_planar_context_reset
        - Src:             'libfreerdp/core/codecs.c:197,10'
          Dst:             nsc_context_reset
        - Src:             'libfreerdp/core/codecs.c:205,10'
          Dst:             rfx_context_reset
        - Src:             'libfreerdp/core/codecs.c:213,10'
          Dst:             clear_context_reset
        - Src:             'libfreerdp/core/codecs.c:225,10'
          Dst:             progressive_context_reset
    - 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:    freerdp_client_codecs_prepare
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/codecs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          200
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - WLog_Print_dbg_tag
        - bitmap_interleaved_context_new
        - clear_context_new
        - codecs_free_int
        - freerdp_bitmap_planar_context_new
        - freerdp_client_codecs_reset
        - nsc_context_new
        - progressive_context_new_ex
        - rfx_context_new_ex
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/codecs.c:101,2'
          Dst:             codecs_free_int
        - Src:             'libfreerdp/core/codecs.c:104,31'
          Dst:             bitmap_interleaved_context_new
        - Src:             'libfreerdp/core/codecs.c:106,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/codecs.c:113,26'
          Dst:             freerdp_bitmap_planar_context_new
        - Src:             'libfreerdp/core/codecs.c:115,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/codecs.c:122,23'
          Dst:             nsc_context_new
        - Src:             'libfreerdp/core/codecs.c:124,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/codecs.c:131,23'
          Dst:             rfx_context_new_ex
        - Src:             'libfreerdp/core/codecs.c:133,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/codecs.c:140,25'
          Dst:             clear_context_new
        - Src:             'libfreerdp/core/codecs.c:142,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/codecs.c:153,31'
          Dst:             progressive_context_new_ex
        - Src:             'libfreerdp/core/codecs.c:155,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/codecs.c:170,9'
          Dst:             freerdp_client_codecs_reset
    - functionName:    metrics_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/metrics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    metrics_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/metrics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/metrics.c:44,25'
          Dst:             calloc
    - functionName:    metrics_write_bytes
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/metrics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          71
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rdp_write_cache_definition
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1705
      functionLinenumberEnd: 1710
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          108
      EdgeCount:       37
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1706,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1707,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1707,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1707,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1708,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1708,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1708,2'
          Dst:             Stream_Write_UINT16_unchecked
    - 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:    97
      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:    rdp_write_bitmap_cache_cell_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2013
      functionLinenumberEnd: 2022
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          73
      EdgeCount:       23
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2019,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2021,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2021,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2021,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:    35
      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_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:    rdp_write_bitmap_cache_v3_codec_id_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3930
      functionLinenumberEnd: 3940
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          107
      EdgeCount:       30
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3931,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3932,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:3935,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:3938,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3938,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3938,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3939,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_capability_set_start
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogEx
        - Stream_GetPosition
        - Stream_Zero
      functionUses:    28
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:133,18'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/capabilities.c:134,7'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/capabilities.c:136,2'
          Dst:             Stream_Zero
    - 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:    29
      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:    rdp_capability_set_finish
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          92
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_Capacity
        - Stream_GetPosition
        - Stream_SetPosition
        - rdp_write_capability_set_header
      functionUses:    28
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:142,24'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/capabilities.c:148,7'
          Dst:             Stream_Capacity
        - Src:             'libfreerdp/core/capabilities.c:150,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/capabilities.c:152,2'
          Dst:             rdp_write_capability_set_header
        - Src:             'libfreerdp/core/capabilities.c:153,9'
          Dst:             Stream_SetPosition
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Capacity
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1336
      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:1335,3'
          Dst:             winpr_int_assert
    - functionName:    rdp_write_capability_set_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          112
      EdgeCount:       43
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:125,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:126,2'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:126,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:127,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:127,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:127,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:128,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:128,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:128,2'
          Dst:             Stream_Write_UINT16_unchecked
    - 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_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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1242,3'
          Dst:             Stream_Fill
    - 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_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:    16
      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:    rdp_write_draw_nine_grid_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2340
      functionLinenumberEnd: 2357
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         180
      ICount:          610
      EdgeCount:       199
      CyclomaticComplexity: 21
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2341,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2342,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:2345,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:2348,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2348,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2348,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2349,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2352,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2352,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2352,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2352,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2352,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2352,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2352,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2352,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2352,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2356,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_offscreen_bitmap_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1871
      functionLinenumberEnd: 1895
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         183
      ICount:          617
      EdgeCount:       203
      CyclomaticComplexity: 22
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Zero
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1874,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1875,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:1878,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:1882,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1882,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1882,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1883,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1883,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1883,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1883,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1883,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1883,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1883,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1883,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1883,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1886,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1886,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1886,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1886,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1886,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1886,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1886,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1886,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1886,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1892,3'
          Dst:             Stream_Zero
        - Src:             'libfreerdp/core/capabilities.c:1894,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_window_activation_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1045
      functionLinenumberEnd: 1057
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          103
      EdgeCount:       53
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1047,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1048,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:1051,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:1052,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1053,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1054,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1055,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1056,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_color_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1289
      functionLinenumberEnd: 1298
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          67
      EdgeCount:       27
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1291,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:1294,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:1295,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1296,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1297,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_control_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 972
      functionLinenumberEnd: 983
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          91
      EdgeCount:       47
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:974,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:977,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:978,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:979,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:980,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:981,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:982,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_sound_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1354
      functionLinenumberEnd: 1364
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          109
      EdgeCount:       37
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1355,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1356,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:1359,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:1361,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1361,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1361,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1362,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1363,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_glyph_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1756
      functionLinenumberEnd: 1771
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          146
      EdgeCount:       45
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - rdp_write_cache_definition
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1757,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1758,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:1761,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:1766,3'
          Dst:             rdp_write_cache_definition
        - Src:             'libfreerdp/core/capabilities.c:1767,2'
          Dst:             rdp_write_cache_definition
        - Src:             'libfreerdp/core/capabilities.c:1768,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1768,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1768,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1769,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1770,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_brush_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1662
      functionLinenumberEnd: 1670
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          91
      EdgeCount:       27
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1663,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1664,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:1667,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:1668,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1668,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1668,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1669,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_bitmap_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 858
      functionLinenumberEnd: 888
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         146
      ICount:          310
      EdgeCount:       151
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - freerdp_settings_get_uint32
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:859,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:862,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:863,22'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/capabilities.c:866,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:867,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:868,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:869,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:870,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:871,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:875,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:876,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:876,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:876,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:880,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:881,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:881,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:881,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:885,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:886,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:886,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:886,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:887,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_bitmap_cache_v2_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2114
      functionLinenumberEnd: 2149
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         116
      ICount:          439
      EdgeCount:       127
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - Stream_Zero
        - freerdp_settings_get_bool
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - rdp_write_bitmap_cache_cell_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2115,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2116,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:2119,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:2122,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/capabilities.c:2132,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2132,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2132,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2133,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2134,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2134,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2134,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2134,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2134,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2134,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2134,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2134,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2134,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2137,2'
          Dst:             rdp_write_bitmap_cache_cell_info
        - Src:             'libfreerdp/core/capabilities.c:2139,2'
          Dst:             rdp_write_bitmap_cache_cell_info
        - Src:             'libfreerdp/core/capabilities.c:2141,2'
          Dst:             rdp_write_bitmap_cache_cell_info
        - Src:             'libfreerdp/core/capabilities.c:2143,2'
          Dst:             rdp_write_bitmap_cache_cell_info
        - Src:             'libfreerdp/core/capabilities.c:2145,2'
          Dst:             rdp_write_bitmap_cache_cell_info
        - Src:             'libfreerdp/core/capabilities.c:2147,2'
          Dst:             Stream_Zero
        - Src:             'libfreerdp/core/capabilities.c:2148,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_nsc_client_capability_container
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3599
      functionLinenumberEnd: 3621
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         70
      ICount:          215
      EdgeCount:       73
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3600,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3612,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:3615,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3617,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3617,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3617,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3618,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3618,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3618,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3619,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3619,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3619,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    rdp_write_nsc_server_capability_container
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3673
      functionLinenumberEnd: 3683
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          69
      EdgeCount:       33
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3675,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3677,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:3680,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3681,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    rdp_write_rfx_client_capability_container
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3553
      functionLinenumberEnd: 3593
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         280
      ICount:          435
      EdgeCount:       281
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3554,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3555,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:3560,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3562,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3564,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3565,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3565,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3565,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3566,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3568,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3569,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3570,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3572,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3573,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3574,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3575,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3576,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3577,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3579,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3580,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3581,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3581,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3581,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3582,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3583,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3584,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3586,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3587,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3588,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3588,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3588,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3589,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3590,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3591,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    rdp_write_rfx_server_capability_container
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3642
      functionLinenumberEnd: 3652
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          69
      EdgeCount:       33
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3644,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3646,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:3649,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3650,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    rdp_write_bitmap_codec_guid
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3101
      functionLinenumberEnd: 3121
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          148
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3120,2'
          Dst:             Stream_Write
    - 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:    rdp_write_window_list_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2603
      functionLinenumberEnd: 2618
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         180
      ICount:          607
      EdgeCount:       199
      CyclomaticComplexity: 21
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2604,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2605,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:2608,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:2609,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2609,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2609,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2610,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2610,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2610,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2610,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2610,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2610,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2610,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2610,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2610,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2613,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2613,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2613,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2613,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2613,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2613,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2613,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2613,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2613,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2617,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_remote_programs_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2525
      functionLinenumberEnd: 2549
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          140
      EdgeCount:       35
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2526,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2527,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:2530,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:2547,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2547,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2547,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2548,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_bitmap_cache_host_support_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1955
      functionLinenumberEnd: 1969
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          119
      EdgeCount:       45
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - freerdp_settings_get_bool
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1958,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/capabilities.c:1961,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:1964,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:1965,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1965,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1965,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1966,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1967,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1968,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_frame_acknowledge_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3878
      functionLinenumberEnd: 3886
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          91
      EdgeCount:       27
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3879,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3880,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:3883,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:3884,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3884,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3884,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3885,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_bitmap_codecs_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3692
      functionLinenumberEnd: 3803
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         125
      ICount:          354
      EdgeCount:       141
      CyclomaticComplexity: 18
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - freerdp_settings_get_bool
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - rdp_write_bitmap_codec_guid
        - rdp_write_nsc_client_capability_container
        - rdp_write_nsc_server_capability_container
        - rdp_write_rfx_client_capability_container
        - rdp_write_rfx_server_capability_container
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3693,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3694,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:3697,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:3703,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/capabilities.c:3716,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3716,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3716,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3720,3'
          Dst:             rdp_write_bitmap_codec_guid
        - Src:             'libfreerdp/core/capabilities.c:3724,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3726,9'
          Dst:             rdp_write_rfx_server_capability_container
        - Src:             'libfreerdp/core/capabilities.c:3731,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3733,9'
          Dst:             rdp_write_rfx_client_capability_container
        - Src:             'libfreerdp/core/capabilities.c:3738,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/capabilities.c:3740,3'
          Dst:             rdp_write_bitmap_codec_guid
        - Src:             'libfreerdp/core/capabilities.c:3744,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3746,9'
          Dst:             rdp_write_nsc_server_capability_container
        - Src:             'libfreerdp/core/capabilities.c:3751,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3753,9'
          Dst:             rdp_write_nsc_client_capability_container
        - Src:             'libfreerdp/core/capabilities.c:3784,3'
          Dst:             rdp_write_bitmap_codec_guid
        - Src:             'libfreerdp/core/capabilities.c:3788,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3790,9'
          Dst:             rdp_write_rfx_server_capability_container
        - Src:             'libfreerdp/core/capabilities.c:3795,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:3797,9'
          Dst:             rdp_write_rfx_client_capability_container
        - Src:             'libfreerdp/core/capabilities.c:3802,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_surface_commands_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2981
      functionLinenumberEnd: 2996
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          118
      EdgeCount:       41
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - freerdp_settings_get_uint32
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2982,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2983,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:2986,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:2988,20'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/capabilities.c:2993,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2993,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2993,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2994,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2995,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_desktop_composition_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2677
      functionLinenumberEnd: 2688
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          97
      EdgeCount:       27
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2678,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2680,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:2683,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:2686,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2686,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2686,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2687,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_large_pointer_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2898
      functionLinenumberEnd: 2908
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          94
      EdgeCount:       27
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2899,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2900,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:2903,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:2906,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2906,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2906,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2907,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_multifragment_update_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2801
      functionLinenumberEnd: 2837
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          191
      EdgeCount:       55
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - freerdp_settings_get_uint32
        - freerdp_settings_set_uint32
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2802,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2804,7'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/capabilities.c:2820,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2821,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2822,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2827,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/capabilities.c:2832,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:2834,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:2835,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2835,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2835,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2836,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_font_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1599
      functionLinenumberEnd: 1608
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          67
      EdgeCount:       27
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1601,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:1604,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:1605,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1606,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1607,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_share_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1227
      functionLinenumberEnd: 1238
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          109
      EdgeCount:       37
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1228,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:1231,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:1233,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1235,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1235,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1235,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1236,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1237,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_virtual_channel_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2260
      functionLinenumberEnd: 2269
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          128
      EdgeCount:       41
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2261,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2262,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:2265,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:2266,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2266,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2266,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2267,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:2268,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_input_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1496
      functionLinenumberEnd: 1533
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         110
      ICount:          366
      EdgeCount:       117
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Zero
        - freerdp_settings_get_bool
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1497,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1498,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:1501,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:1510,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/capabilities.c:1513,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/capabilities.c:1516,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/capabilities.c:1519,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/capabilities.c:1525,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1525,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1525,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1526,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1527,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1527,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1527,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1528,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1528,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1528,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1529,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1529,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1529,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1530,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1530,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1530,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1531,2'
          Dst:             Stream_Zero
        - Src:             'libfreerdp/core/capabilities.c:1532,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_pointer_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1150
      functionLinenumberEnd: 1170
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          174
      EdgeCount:       57
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1151,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:1154,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:1160,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1164,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1165,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1165,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1165,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1167,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1167,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1167,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:1169,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_order_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 640
      functionLinenumberEnd: 710
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         223
      ICount:          500
      EdgeCount:       235
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_get_string
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - strncpy
        - strnlen
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:643,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:644,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:647,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:656,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:656,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:662,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:662,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:672,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:672,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:679,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:679,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:685,20'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/capabilities.c:688,22'
          Dst:             strnlen
        - Src:             'libfreerdp/core/capabilities.c:689,3'
          Dst:             strncpy
        - Src:             'libfreerdp/core/capabilities.c:691,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/capabilities.c:693,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:694,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:695,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:696,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:697,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:698,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:699,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:699,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:699,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:700,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/capabilities.c:701,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:702,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:702,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:702,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:703,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:704,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:705,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:706,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:707,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:707,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:707,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:708,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:709,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_bitmap_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         181
      ICount:          453
      EdgeCount:       189
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - freerdp_settings_get_uint32
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:440,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:443,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:445,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:464,7'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/capabilities.c:469,35'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/capabilities.c:473,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:473,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:473,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:474,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:475,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:476,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:477,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:477,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:477,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:478,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:478,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:478,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:479,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:480,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:480,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:480,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:481,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:482,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:483,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:483,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:483,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:484,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:485,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:486,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_write_general_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         198
      ICount:          660
      EdgeCount:       209
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_capability_set_finish
        - rdp_capability_set_start
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:259,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:262,24'
          Dst:             rdp_capability_set_start
        - Src:             'libfreerdp/core/capabilities.c:265,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:283,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:283,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:292,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:292,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:299,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:299,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:299,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:300,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:300,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:300,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:301,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:301,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:301,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:302,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:303,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:303,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:303,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:305,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:305,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:305,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:306,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:306,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:306,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:307,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:307,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:307,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:308,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:308,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:308,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:310,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:310,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:310,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:311,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:311,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:311,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/capabilities.c:312,9'
          Dst:             rdp_capability_set_finish
    - functionName:    rdp_apply_bitmap_cache_host_support_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1921
      functionLinenumberEnd: 1924
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_get_bool
        - freerdp_settings_set_bool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1922,20'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/capabilities.c:1923,20'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/capabilities.c:1924,9'
          Dst:             freerdp_settings_set_bool
    - functionName:    rdp_apply_draw_nine_grid_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2297
      functionLinenumberEnd: 2305
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2298,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2299,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_window_activation_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1012
      functionLinenumberEnd: 1016
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1013,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1014,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_control_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 941
      functionLinenumberEnd: 945
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:942,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:943,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_sound_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1320
      functionLinenumberEnd: 1326
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          48
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1321,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1322,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_offscreen_bitmap_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1830
      functionLinenumberEnd: 1838
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1831,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1832,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_glyph_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1713
      functionLinenumberEnd: 1727
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          139
      EdgeCount:       44
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1714,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1715,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1717,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1718,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1722,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1723,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_brush_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1631
      functionLinenumberEnd: 1637
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          48
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1632,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1633,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_bitmap_cache_v2_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2025
      functionLinenumberEnd: 2055
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          111
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - freerdp_settings_get_bool
        - freerdp_settings_get_pointer_array
        - freerdp_settings_get_uint32
        - freerdp_settings_set_bool
        - freerdp_settings_set_pointer_array
        - freerdp_settings_set_pointer_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2032,20'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/capabilities.c:2033,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/capabilities.c:2039,7'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/capabilities.c:2040,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/capabilities.c:2047,8'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/core/capabilities.c:2048,9'
          Dst:             freerdp_settings_set_pointer_array
    - functionName:    rdp_apply_bitmap_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 817
      functionLinenumberEnd: 820
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:818,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:819,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_bitmap_cache_v3_codec_id_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3906
      functionLinenumberEnd: 3911
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          48
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3907,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3908,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_frame_acknowledge_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3847
      functionLinenumberEnd: 3854
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          59
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3848,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3849,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_bitmap_codecs_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3124
      functionLinenumberEnd: 3150
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          196
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - freerdp_settings_set_bool
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3125,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3126,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3144,8'
          Dst:             freerdp_settings_set_bool
    - functionName:    rdp_apply_surface_commands_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2928
      functionLinenumberEnd: 2949
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          82
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2929,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2930,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_desktop_composition_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2644
      functionLinenumberEnd: 2649
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          48
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2645,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2646,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_large_pointer_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2856
      functionLinenumberEnd: 2861
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          48
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2857,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2858,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_multifragment_update_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2708
      functionLinenumberEnd: 2775
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          143
      EdgeCount:       45
      CyclomaticComplexity: 10
      functionsReached:
        - freerdp_settings_get_uint32
        - freerdp_settings_set_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2709,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2710,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2713,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/capabilities.c:2736,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/capabilities.c:2743,10'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/capabilities.c:2754,9'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/capabilities.c:2767,7'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/capabilities.c:2769,9'
          Dst:             freerdp_settings_set_uint32
    - functionName:    rdp_apply_window_list_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2568
      functionLinenumberEnd: 2576
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2569,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2570,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_remote_programs_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2479
      functionLinenumberEnd: 2495
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          89
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2480,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2481,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_draw_gdiplus_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2383
      functionLinenumberEnd: 2393
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          73
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2384,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2385,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_font_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1569
      functionLinenumberEnd: 1572
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1570,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1571,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_color_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1261
      functionLinenumberEnd: 1264
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1262,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1263,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_share_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1196
      functionLinenumberEnd: 1200
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1197,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1198,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_virtual_channel_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2191
      functionLinenumberEnd: 2223
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          178
      EdgeCount:       49
      CyclomaticComplexity: 11
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2192,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2193,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_input_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1386
      functionLinenumberEnd: 1426
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          220
      EdgeCount:       50
      CyclomaticComplexity: 11
      functionsReached:
        - freerdp_settings_get_bool
        - freerdp_settings_set_bool
        - freerdp_settings_set_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1387,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1388,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1398,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/capabilities.c:1411,29'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/capabilities.c:1414,24'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/capabilities.c:1415,9'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/capabilities.c:1422,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/capabilities.c:1423,28'
          Dst:             freerdp_settings_get_bool
    - functionName:    rdp_apply_pointer_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1085
      functionLinenumberEnd: 1104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          114
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_settings_get_uint32
        - freerdp_settings_set_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1086,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1087,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1089,34'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/capabilities.c:1091,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/capabilities.c:1093,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/capabilities.c:1095,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/capabilities.c:1102,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/capabilities.c:1103,7'
          Dst:             freerdp_settings_set_uint32
    - functionName:    rdp_apply_order_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 575
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          188
      EdgeCount:       48
      CyclomaticComplexity: 10
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:543,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:544,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_bitmap_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          182
      EdgeCount:       46
      CyclomaticComplexity: 10
      functionsReached:
        - freerdp_settings_get_uint32
        - freerdp_settings_set_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:354,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:355,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:360,36'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/capabilities.c:359,8'
          Dst:             freerdp_settings_set_uint32
    - functionName:    rdp_apply_general_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          168
      EdgeCount:       39
      CyclomaticComplexity: 8
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:158,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:159,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_apply_from_received
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4200
      functionLinenumberEnd: 4264
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          261
      EdgeCount:       67
      CyclomaticComplexity: 35
      functionsReached:
        - rdp_apply_bitmap_cache_capability_set
        - rdp_apply_bitmap_cache_host_support_capability_set
        - rdp_apply_bitmap_cache_v2_capability_set
        - rdp_apply_bitmap_cache_v3_codec_id_capability_set
        - rdp_apply_bitmap_capability_set
        - rdp_apply_bitmap_codecs_capability_set
        - rdp_apply_brush_capability_set
        - rdp_apply_color_cache_capability_set
        - rdp_apply_control_capability_set
        - rdp_apply_desktop_composition_capability_set
        - rdp_apply_draw_gdiplus_cache_capability_set
        - rdp_apply_draw_nine_grid_cache_capability_set
        - rdp_apply_font_capability_set
        - rdp_apply_frame_acknowledge_capability_set
        - rdp_apply_general_capability_set
        - rdp_apply_glyph_cache_capability_set
        - rdp_apply_input_capability_set
        - rdp_apply_large_pointer_capability_set
        - rdp_apply_multifragment_update_capability_set
        - rdp_apply_offscreen_bitmap_cache_capability_set
        - rdp_apply_order_capability_set
        - rdp_apply_pointer_capability_set
        - rdp_apply_remote_programs_capability_set
        - rdp_apply_share_capability_set
        - rdp_apply_sound_capability_set
        - rdp_apply_surface_commands_capability_set
        - rdp_apply_virtual_channel_capability_set
        - rdp_apply_window_activation_capability_set
        - rdp_apply_window_list_capability_set
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/capabilities.c:4201,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:4204,11'
          Dst:             rdp_apply_general_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4206,11'
          Dst:             rdp_apply_bitmap_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4208,11'
          Dst:             rdp_apply_order_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4210,11'
          Dst:             rdp_apply_pointer_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4212,11'
          Dst:             rdp_apply_input_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4214,11'
          Dst:             rdp_apply_virtual_channel_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4216,11'
          Dst:             rdp_apply_share_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4218,11'
          Dst:             rdp_apply_color_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4220,11'
          Dst:             rdp_apply_font_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4222,11'
          Dst:             rdp_apply_draw_gdiplus_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4224,11'
          Dst:             rdp_apply_remote_programs_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4226,11'
          Dst:             rdp_apply_window_list_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4228,11'
          Dst:             rdp_apply_multifragment_update_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4230,11'
          Dst:             rdp_apply_large_pointer_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4232,11'
          Dst:             rdp_apply_desktop_composition_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4234,11'
          Dst:             rdp_apply_surface_commands_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4236,11'
          Dst:             rdp_apply_bitmap_codecs_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4238,11'
          Dst:             rdp_apply_frame_acknowledge_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4240,11'
          Dst:             rdp_apply_bitmap_cache_v3_codec_id_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4242,11'
          Dst:             rdp_apply_bitmap_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4244,11'
          Dst:             rdp_apply_bitmap_cache_v2_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4246,11'
          Dst:             rdp_apply_brush_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4248,11'
          Dst:             rdp_apply_glyph_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4250,11'
          Dst:             rdp_apply_offscreen_bitmap_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4252,11'
          Dst:             rdp_apply_sound_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4254,11'
          Dst:             rdp_apply_control_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4256,11'
          Dst:             rdp_apply_window_activation_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4258,11'
          Dst:             rdp_apply_draw_nine_grid_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4260,11'
          Dst:             rdp_apply_bitmap_cache_host_support_capability_set
    - functionName:    rdp_read_capability_set_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          91
      EdgeCount:       29
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:112,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:113,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:114,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:116,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:118,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:119,2'
          Dst:             stream_read_u16_le
    - 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:    47
      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:    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_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:    rdp_read_cache_definition
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1693
      functionLinenumberEnd: 1698
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          44
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1694,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1695,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:1696,2'
          Dst:             stream_read_u16_le
    - functionName:    rdp_read_bitmap_cache_cell_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1995
      functionLinenumberEnd: 2010
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1998,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1999,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:2006,2'
          Dst:             stream_read_u32_le
    - 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:    23
      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:    rdp_read_codec_ts_rfx_icap
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3154
      functionLinenumberEnd: 3268
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         108
      ICount:          408
      EdgeCount:       129
      CyclomaticComplexity: 23
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_set_uint32
        - stream_read_u16_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/capabilities.c:3248,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3164,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3164,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3171,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:3174,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:3175,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:3176,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/capabilities.c:3177,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/capabilities.c:3178,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/capabilities.c:3179,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/capabilities.c:3186,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3186,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3198,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3198,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3207,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3207,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3216,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3216,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3226,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3226,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3234,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/capabilities.c:3239,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/capabilities.c:3243,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3243,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3251,9'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/capabilities.c:3255,9'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/capabilities.c:3259,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3259,4'
          Dst:             WLog_PrintTextMessage
    - 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:    17
      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_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:    rdp_read_codec_ts_rfx_capset
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3271
      functionLinenumberEnd: 3336
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         69
      ICount:          270
      EdgeCount:       82
      CyclomaticComplexity: 15
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Pointer
        - Stream_StaticConstInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_read_codec_ts_rfx_icap
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3279,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:3283,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:3284,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:3287,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3287,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3295,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3295,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3299,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:3303,50'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/capabilities.c:3303,17'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/core/capabilities.c:3304,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3306,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:3309,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/capabilities.c:3310,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:3311,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:3312,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:3316,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3316,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3323,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3323,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3332,8'
          Dst:             rdp_read_codec_ts_rfx_icap
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    rdp_read_codec_ts_rfx_caps
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3339
      functionLinenumberEnd: 3384
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          187
      EdgeCount:       57
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_read_codec_ts_rfx_capset
        - stream_read_u16_le
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3340,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/capabilities.c:3348,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:3350,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:3351,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:3352,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:3356,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3356,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3365,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3365,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3372,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3372,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3379,8'
          Dst:             rdp_read_codec_ts_rfx_capset
    - functionName:    rdp_read_codec_ts_rfx_clnt_caps_container
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3387
      functionLinenumberEnd: 3429
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          188
      EdgeCount:       45
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Pointer
        - Stream_Seek
        - Stream_StaticConstInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_read_codec_ts_rfx_caps
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3393,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:3395,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:3398,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3398,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3404,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:3408,50'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/capabilities.c:3408,17'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/core/capabilities.c:3409,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3411,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/capabilities.c:3413,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:3416,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:3417,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:3418,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:3426,54'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/capabilities.c:3426,20'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/core/capabilities.c:3427,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3428,9'
          Dst:             rdp_read_codec_ts_rfx_caps
    - functionName:    sUuidEqual
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2999
      functionLinenumberEnd: 3025
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          155
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rdp_read_bitmap_codec_guid
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3079
      functionLinenumberEnd: 3098
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          147
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Read
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3082,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3083,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:3085,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:    3
      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_Get_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:413,10'
          Dst:             stream_read_u32_le
    - functionName:    Stream_Seek_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1199
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1200,3'
          Dst:             Stream_Seek
    - functionName:    rdp_input_flag_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4992
      functionLinenumberEnd: 5016
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          184
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - snprintf
        - winpr_str_append
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:4995,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/capabilities.c:4996,2'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/capabilities.c:4998,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/capabilities.c:5000,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/capabilities.c:5002,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/capabilities.c:5004,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/capabilities.c:5006,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/capabilities.c:5008,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/capabilities.c:5010,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/capabilities.c:5012,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/capabilities.c:5014,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/capabilities.c:5015,2'
          Dst:             winpr_str_append
    - functionName:    rdp_write_confirm_active
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4826
      functionLinenumberEnd: 4974
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         181
      ICount:          773
      EdgeCount:       221
      CyclomaticComplexity: 42
      functionsReached:
        - Stream_GetPosition
        - Stream_Seek_UINT16
        - Stream_SetPosition
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - rdp_write_bitmap_cache_capability_set
        - rdp_write_bitmap_cache_v2_capability_set
        - rdp_write_bitmap_cache_v3_codec_id_capability_set
        - rdp_write_bitmap_capability_set
        - rdp_write_bitmap_codecs_capability_set
        - rdp_write_brush_capability_set
        - rdp_write_color_cache_capability_set
        - rdp_write_control_capability_set
        - rdp_write_draw_nine_grid_cache_capability_set
        - rdp_write_font_capability_set
        - rdp_write_frame_acknowledge_capability_set
        - rdp_write_general_capability_set
        - rdp_write_glyph_cache_capability_set
        - rdp_write_input_capability_set
        - rdp_write_large_pointer_capability_set
        - rdp_write_multifragment_update_capability_set
        - rdp_write_offscreen_bitmap_cache_capability_set
        - rdp_write_order_capability_set
        - rdp_write_pointer_capability_set
        - rdp_write_remote_programs_capability_set
        - rdp_write_share_capability_set
        - rdp_write_sound_capability_set
        - rdp_write_surface_commands_capability_set
        - rdp_write_virtual_channel_capability_set
        - rdp_write_window_activation_capability_set
        - rdp_write_window_list_capability_set
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:4835,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4838,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4838,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4838,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:4839,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:4840,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4840,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4840,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:4841,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/capabilities.c:4842,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:4843,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/capabilities.c:4844,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/capabilities.c:4845,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:4846,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:4850,7'
          Dst:             rdp_write_general_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4851,7'
          Dst:             rdp_write_bitmap_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4852,7'
          Dst:             rdp_write_order_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4856,9'
          Dst:             rdp_write_bitmap_cache_v2_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4858,9'
          Dst:             rdp_write_bitmap_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4863,7'
          Dst:             rdp_write_pointer_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4864,7'
          Dst:             rdp_write_input_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4865,7'
          Dst:             rdp_write_brush_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4866,7'
          Dst:             rdp_write_glyph_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4867,7'
          Dst:             rdp_write_virtual_channel_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4868,7'
          Dst:             rdp_write_sound_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4869,7'
          Dst:             rdp_write_share_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4870,7'
          Dst:             rdp_write_font_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4871,7'
          Dst:             rdp_write_control_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4872,7'
          Dst:             rdp_write_color_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4873,7'
          Dst:             rdp_write_window_activation_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4881,8'
          Dst:             rdp_write_offscreen_bitmap_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4889,8'
          Dst:             rdp_write_draw_nine_grid_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4899,9'
          Dst:             rdp_write_large_pointer_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4908,8'
          Dst:             rdp_write_remote_programs_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4909,8'
          Dst:             rdp_write_window_list_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4917,8'
          Dst:             rdp_write_multifragment_update_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4925,8'
          Dst:             rdp_write_surface_commands_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4933,8'
          Dst:             rdp_write_bitmap_codecs_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4944,8'
          Dst:             rdp_write_frame_acknowledge_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4954,9'
          Dst:             rdp_write_bitmap_cache_v3_codec_id_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4959,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/capabilities.c:4960,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/capabilities.c:4965,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4965,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4965,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:4967,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/capabilities.c:4969,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4969,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4969,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:4973,9'
          Dst:             Stream_SetPosition
    - functionName:    Stream_Seek_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1203
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    46
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1204,3'
          Dst:             Stream_Seek
    - functionName:    rdp_send_confirm_active
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4977
      functionLinenumberEnd: 4989
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Release
        - rdp_send_pdu
        - rdp_send_stream_pdu_init
        - rdp_write_confirm_active
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:4979,15'
          Dst:             rdp_send_stream_pdu_init
        - Src:             'libfreerdp/core/capabilities.c:4985,11'
          Dst:             rdp_write_confirm_active
        - Src:             'libfreerdp/core/capabilities.c:4986,11'
          Dst:             rdp_send_pdu
        - Src:             'libfreerdp/core/capabilities.c:4987,2'
          Dst:             Stream_Release
    - functionName:    rdp_recv_confirm_active
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4752
      functionLinenumberEnd: 4823
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          293
      EdgeCount:       71
      CyclomaticComplexity: 15
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek
        - Stream_Seek_UINT16
        - Stream_Seek_UINT32
        - freerdp_settings_set_bool
        - freerdp_settings_set_uint32
        - rdp_read_capability_sets
        - stream_read_u16_le
        - tpkt_ensure_stream_consumed_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:4757,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4758,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4760,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4762,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:4765,2'
          Dst:             Stream_Seek_UINT32
        - Src:             'libfreerdp/core/capabilities.c:4766,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:4767,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:4768,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:4770,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:4773,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/capabilities.c:4774,7'
          Dst:             rdp_read_capability_sets
        - Src:             'libfreerdp/core/capabilities.c:4800,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/capabilities.c:4802,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/capabilities.c:4804,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/capabilities.c:4811,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/capabilities.c:4822,9'
          Dst:             tpkt_ensure_stream_consumed_
    - functionName:    Stream_Seek_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1207
      functionLinenumberEnd: 1209
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1208,3'
          Dst:             Stream_Seek
    - functionName:    rdp_read_capability_sets
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4517
      functionLinenumberEnd: 4585
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          260
      EdgeCount:       65
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetPosition
        - Stream_GetRemainingLength
        - Stream_Pointer
        - Stream_SafeSeekEx
        - Stream_Seek
        - Stream_StaticInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_capability_buffer_copy
        - rdp_apply_from_received
        - rdp_read_capability_set
        - rdp_read_capability_set_header
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:4529,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4530,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4532,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:4535,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:4536,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/capabilities.c:4539,10'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/capabilities.c:4540,35'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/capabilities.c:4547,8'
          Dst:             rdp_read_capability_set_header
        - Src:             'libfreerdp/core/capabilities.c:4549,39'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/capabilities.c:4549,9'
          Dst:             Stream_StaticInit
        - Src:             'libfreerdp/core/capabilities.c:4550,8'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/capabilities.c:4553,8'
          Dst:             rdp_read_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4556,8'
          Dst:             rdp_apply_from_received
        - Src:             'libfreerdp/core/capabilities.c:4561,8'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/capabilities.c:4566,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:4566,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:4578,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:4578,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:4582,7'
          Dst:             freerdp_capability_buffer_copy
    - functionName:    rdp_read_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4268
      functionLinenumberEnd: 4513
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         168
      ICount:          786
      EdgeCount:       205
      CyclomaticComplexity: 39
      functionsReached:
        - Stream_Buffer
        - Stream_Capacity
        - Stream_GetRemainingLength
        - Stream_Length
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - get_capability_name
        - rdp_read_bitmap_cache_capability_set
        - rdp_read_bitmap_cache_host_support_capability_set
        - rdp_read_bitmap_cache_v2_capability_set
        - rdp_read_bitmap_cache_v3_codec_id_capability_set
        - rdp_read_bitmap_capability_set
        - rdp_read_bitmap_codecs_capability_set
        - rdp_read_brush_capability_set
        - rdp_read_color_cache_capability_set
        - rdp_read_control_capability_set
        - rdp_read_desktop_composition_capability_set
        - rdp_read_draw_gdiplus_cache_capability_set
        - rdp_read_draw_nine_grid_cache_capability_set
        - rdp_read_font_capability_set
        - rdp_read_frame_acknowledge_capability_set
        - rdp_read_general_capability_set
        - rdp_read_glyph_cache_capability_set
        - rdp_read_input_capability_set
        - rdp_read_large_pointer_capability_set
        - rdp_read_multifragment_update_capability_set
        - rdp_read_offscreen_bitmap_cache_capability_set
        - rdp_read_order_capability_set
        - rdp_read_pointer_capability_set
        - rdp_read_remote_programs_capability_set
        - rdp_read_share_capability_set
        - rdp_read_sound_capability_set
        - rdp_read_surface_commands_capability_set
        - rdp_read_virtual_channel_capability_set
        - rdp_read_window_activation_capability_set
        - rdp_read_window_list_capability_set
        - realloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/capabilities.c:4295,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/capabilities.c:4421,4'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/capabilities.c:4487,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:4269,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4273,23'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/capabilities.c:4277,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4280,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4283,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4284,15'
          Dst:             realloc
        - Src:             'libfreerdp/core/capabilities.c:4287,15'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/capabilities.c:4291,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:4291,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:4298,9'
          Dst:             rdp_read_general_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4304,9'
          Dst:             rdp_read_bitmap_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4310,9'
          Dst:             rdp_read_order_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4316,9'
          Dst:             rdp_read_pointer_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4322,9'
          Dst:             rdp_read_input_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4328,9'
          Dst:             rdp_read_virtual_channel_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4334,9'
          Dst:             rdp_read_share_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4340,9'
          Dst:             rdp_read_color_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4346,9'
          Dst:             rdp_read_font_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4352,9'
          Dst:             rdp_read_draw_gdiplus_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4358,9'
          Dst:             rdp_read_remote_programs_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4364,9'
          Dst:             rdp_read_window_list_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4370,9'
          Dst:             rdp_read_multifragment_update_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4376,9'
          Dst:             rdp_read_large_pointer_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4382,9'
          Dst:             rdp_read_desktop_composition_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4388,9'
          Dst:             rdp_read_surface_commands_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4394,9'
          Dst:             rdp_read_bitmap_codecs_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4400,9'
          Dst:             rdp_read_frame_acknowledge_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4406,9'
          Dst:             rdp_read_bitmap_cache_v3_codec_id_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4424,11'
          Dst:             rdp_read_bitmap_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4430,11'
          Dst:             rdp_read_bitmap_cache_v2_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4436,11'
          Dst:             rdp_read_brush_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4442,11'
          Dst:             rdp_read_glyph_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4448,11'
          Dst:             rdp_read_offscreen_bitmap_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4454,11'
          Dst:             rdp_read_sound_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4460,11'
          Dst:             rdp_read_control_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4466,11'
          Dst:             rdp_read_window_activation_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4472,11'
          Dst:             rdp_read_draw_nine_grid_cache_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4478,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:4478,6'
          Dst:             get_capability_name
        - Src:             'libfreerdp/core/capabilities.c:4478,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:4490,11'
          Dst:             rdp_read_bitmap_cache_host_support_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4496,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:4496,6'
          Dst:             get_capability_name
        - Src:             'libfreerdp/core/capabilities.c:4496,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:4504,22'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/capabilities.c:4507,25'
          Dst:             Stream_Capacity
        - Src:             'libfreerdp/core/capabilities.c:4508,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:4508,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:1325,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    rdp_read_general_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          253
      EdgeCount:       57
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT16
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:204,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:207,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:208,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:209,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:211,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:214,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:214,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:221,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:221,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:230,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:231,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:233,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:234,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:235,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:236,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:238,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/capabilities.c:239,2'
          Dst:             stream_read_u8
    - functionName:    rdp_read_bitmap_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          140
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT16
        - Stream_Seek_UINT8
        - freerdp_settings_set_uint32
        - stream_read_u16_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:400,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:403,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:404,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:405,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:406,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:407,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:408,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:409,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:410,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:411,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:412,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/capabilities.c:413,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/capabilities.c:414,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:415,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:417,7'
          Dst:             freerdp_settings_set_uint32
    - functionName:    rdp_read_order_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 584
      functionLinenumberEnd: 632
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          195
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Read
        - Stream_Seek_UINT16
        - Stream_Seek_UINT32
        - freerdp_settings_set_string
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:590,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:591,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:594,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/capabilities.c:595,2'
          Dst:             Stream_Seek_UINT32
        - Src:             'libfreerdp/core/capabilities.c:596,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:597,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:598,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:599,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:600,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:601,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:602,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/capabilities.c:603,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:604,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:605,2'
          Dst:             Stream_Seek_UINT32
        - Src:             'libfreerdp/core/capabilities.c:606,2'
          Dst:             Stream_Seek_UINT32
        - Src:             'libfreerdp/core/capabilities.c:607,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:608,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:609,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:610,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:612,7'
          Dst:             freerdp_settings_set_string
    - functionName:    rdp_read_pointer_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1113
      functionLinenumberEnd: 1142
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          125
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1118,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:1121,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:1122,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:1126,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:1126,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:1134,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/capabilities.c:1135,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:1137,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_read_input_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1434
      functionLinenumberEnd: 1488
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          219
      EdgeCount:       51
      CyclomaticComplexity: 12
      functionsReached:
        - ConvertWCharNToUtf8
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Read_UTF16_String
        - Stream_Seek_UINT16
        - freerdp_settings_set_bool
        - freerdp_settings_set_string_len
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1437,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1438,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:1441,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:1442,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:1444,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:1445,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:1446,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:1447,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:1457,8'
          Dst:             Stream_Read_UTF16_String
        - Src:             'libfreerdp/core/capabilities.c:1460,7'
          Dst:             ConvertWCharNToUtf8
        - Src:             'libfreerdp/core/capabilities.c:1463,8'
          Dst:             freerdp_settings_set_string_len
        - Src:             'libfreerdp/core/capabilities.c:1467,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/capabilities.c:1471,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/capabilities.c:1474,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/capabilities.c:1477,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/capabilities.c:1480,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/capabilities.c:1483,7'
          Dst:             freerdp_settings_set_bool
    - functionName:    rdp_read_virtual_channel_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2232
      functionLinenumberEnd: 2251
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          80
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetRemainingLength
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2236,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2237,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:2240,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:2242,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/capabilities.c:2243,3'
          Dst:             stream_read_u32_le
    - functionName:    rdp_read_share_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1209
      functionLinenumberEnd: 1219
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          52
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1211,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1213,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:1216,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:1217,2'
          Dst:             Stream_Seek_UINT16
    - functionName:    rdp_read_color_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1273
      functionLinenumberEnd: 1281
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1275,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:1278,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:1279,2'
          Dst:             Stream_Seek_UINT16
    - functionName:    rdp_read_font_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1582
      functionLinenumberEnd: 1590
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek_UINT16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1584,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/capabilities.c:1585,3'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:1587,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/capabilities.c:1588,3'
          Dst:             Stream_Seek_UINT16
    - functionName:    rdp_read_draw_gdiplus_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2402
      functionLinenumberEnd: 2421
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          85
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek
        - Stream_Seek_UINT32
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2406,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2407,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:2410,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:2411,2'
          Dst:             Stream_Seek_UINT32
        - Src:             'libfreerdp/core/capabilities.c:2412,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:2413,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/capabilities.c:2414,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/capabilities.c:2415,2'
          Dst:             Stream_Seek
    - functionName:    rdp_read_remote_programs_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2504
      functionLinenumberEnd: 2516
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2507,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2508,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:2511,2'
          Dst:             stream_read_u32_le
    - functionName:    rdp_read_window_list_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2585
      functionLinenumberEnd: 2595
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          70
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2586,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2587,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:2590,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:2591,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/capabilities.c:2592,2'
          Dst:             stream_read_u16_le
    - functionName:    rdp_read_multifragment_update_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2784
      functionLinenumberEnd: 2792
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          54
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT32
        - freerdp_settings_set_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2785,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2786,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:2789,41'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/capabilities.c:2790,9'
          Dst:             freerdp_settings_set_uint32
    - functionName:    rdp_read_large_pointer_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2870
      functionLinenumberEnd: 2889
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          96
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2873,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2874,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:2877,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:2881,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:2881,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdp_read_desktop_composition_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2659
      functionLinenumberEnd: 2668
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          56
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2661,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2663,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:2666,2'
          Dst:             stream_read_u16_le
    - functionName:    rdp_read_surface_commands_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2958
      functionLinenumberEnd: 2972
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT32
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2961,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2962,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:2965,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:2966,2'
          Dst:             Stream_Seek_UINT32
    - functionName:    rdp_read_bitmap_codecs_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3438
      functionLinenumberEnd: 3547
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         84
      ICount:          402
      EdgeCount:       108
      CyclomaticComplexity: 26
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetRemainingLength
        - Stream_Pointer
        - Stream_SafeSeekEx
        - Stream_StaticInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_set_bool
        - rdp_read_bitmap_codec_guid
        - rdp_read_codec_ts_rfx_clnt_caps_container
        - sUuidEqual
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3448,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3449,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:3452,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/capabilities.c:3458,8'
          Dst:             rdp_read_bitmap_codec_guid
        - Src:             'libfreerdp/core/capabilities.c:3460,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:3462,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/capabilities.c:3463,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:3465,48'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/capabilities.c:3465,18'
          Dst:             Stream_StaticInit
        - Src:             'libfreerdp/core/capabilities.c:3466,8'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/capabilities.c:3471,8'
          Dst:             sUuidEqual
        - Src:             'libfreerdp/core/capabilities.c:3475,10'
          Dst:             rdp_read_codec_ts_rfx_clnt_caps_container
        - Src:             'libfreerdp/core/capabilities.c:3478,13'
          Dst:             sUuidEqual
        - Src:             'libfreerdp/core/capabilities.c:3482,10'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/capabilities.c:3485,13'
          Dst:             sUuidEqual
        - Src:             'libfreerdp/core/capabilities.c:3492,10'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:3494,5'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/capabilities.c:3495,5'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/capabilities.c:3496,5'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/capabilities.c:3508,13'
          Dst:             sUuidEqual
        - Src:             'libfreerdp/core/capabilities.c:3510,10'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/capabilities.c:3515,10'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/capabilities.c:3521,9'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/capabilities.c:3525,23'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/capabilities.c:3528,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:3528,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:3536,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/capabilities.c:3538,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/capabilities.c:3540,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/capabilities.c:3542,8'
          Dst:             freerdp_settings_set_bool
    - functionName:    rdp_read_frame_acknowledge_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3862
      functionLinenumberEnd: 3870
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          54
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3863,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3864,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:3867,2'
          Dst:             stream_read_u32_le
    - functionName:    rdp_read_bitmap_cache_v3_codec_id_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3916
      functionLinenumberEnd: 3926
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          59
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:3919,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:3920,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:3923,2'
          Dst:             stream_read_u8
    - functionName:    rdp_read_bitmap_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 829
      functionLinenumberEnd: 849
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT16
        - Stream_Seek_UINT32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:831,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:833,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:836,2'
          Dst:             Stream_Seek_UINT32
        - Src:             'libfreerdp/core/capabilities.c:837,2'
          Dst:             Stream_Seek_UINT32
        - Src:             'libfreerdp/core/capabilities.c:838,2'
          Dst:             Stream_Seek_UINT32
        - Src:             'libfreerdp/core/capabilities.c:839,2'
          Dst:             Stream_Seek_UINT32
        - Src:             'libfreerdp/core/capabilities.c:840,2'
          Dst:             Stream_Seek_UINT32
        - Src:             'libfreerdp/core/capabilities.c:841,2'
          Dst:             Stream_Seek_UINT32
        - Src:             'libfreerdp/core/capabilities.c:842,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:843,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:844,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:845,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:846,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:847,2'
          Dst:             Stream_Seek_UINT16
    - functionName:    rdp_read_bitmap_cache_v2_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2063
      functionLinenumberEnd: 2105
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          188
      EdgeCount:       50
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_SafeSeekEx
        - Stream_Seek
        - Stream_Seek_UINT8
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_get_pointer_array_writable
        - freerdp_settings_set_bool
        - rdp_read_bitmap_cache_cell_info
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2066,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2068,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:2071,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:2073,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/capabilities.c:2075,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/capabilities.c:2079,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/capabilities.c:2080,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/capabilities.c:2083,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:2083,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:2092,7'
          Dst:             freerdp_settings_get_pointer_array_writable
        - Src:             'libfreerdp/core/capabilities.c:2093,8'
          Dst:             rdp_read_bitmap_cache_cell_info
        - Src:             'libfreerdp/core/capabilities.c:2100,8'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/capabilities.c:2103,2'
          Dst:             Stream_Seek
    - functionName:    rdp_read_brush_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1646
      functionLinenumberEnd: 1654
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          55
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1648,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1650,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:1652,2'
          Dst:             stream_read_u32_le
    - functionName:    rdp_read_glyph_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1736
      functionLinenumberEnd: 1748
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          84
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT16
        - rdp_read_cache_definition
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1737,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1738,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:1743,3'
          Dst:             rdp_read_cache_definition
        - Src:             'libfreerdp/core/capabilities.c:1744,2'
          Dst:             rdp_read_cache_definition
        - Src:             'libfreerdp/core/capabilities.c:1745,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:1746,2'
          Dst:             Stream_Seek_UINT16
    - functionName:    rdp_read_offscreen_bitmap_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1848
      functionLinenumberEnd: 1862
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1851,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1852,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:1855,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:1856,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:1857,2'
          Dst:             stream_read_u16_le
    - functionName:    rdp_read_sound_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1335
      functionLinenumberEnd: 1346
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT16
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1338,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1339,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:1342,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:1343,2'
          Dst:             Stream_Seek_UINT16
    - functionName:    rdp_read_control_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 954
      functionLinenumberEnd: 964
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:956,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:959,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:960,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:961,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:962,2'
          Dst:             Stream_Seek_UINT16
    - functionName:    rdp_read_window_activation_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1025
      functionLinenumberEnd: 1036
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1027,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:1028,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:1031,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:1032,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:1033,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:1034,2'
          Dst:             Stream_Seek_UINT16
    - functionName:    rdp_read_draw_nine_grid_cache_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2315
      functionLinenumberEnd: 2331
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          78
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:2318,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:2319,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:2322,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:2323,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:2324,2'
          Dst:             stream_read_u16_le
    - functionName:    get_capability_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rdp_read_bitmap_cache_host_support_capability_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1934
      functionLinenumberEnd: 1946
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT16
        - Stream_Seek_UINT8
        - freerdp_settings_set_bool
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:1937,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:1940,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/capabilities.c:1941,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/capabilities.c:1942,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:1944,9'
          Dst:             freerdp_settings_set_bool
    - functionName:    rdp_write_demand_active
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4660
      functionLinenumberEnd: 4733
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         128
      ICount:          475
      EdgeCount:       152
      CyclomaticComplexity: 26
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek_UINT16
        - Stream_SetPosition
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - freerdp_settings_get_bool
        - rdp_write_bitmap_cache_host_support_capability_set
        - rdp_write_bitmap_capability_set
        - rdp_write_bitmap_codecs_capability_set
        - rdp_write_desktop_composition_capability_set
        - rdp_write_font_capability_set
        - rdp_write_frame_acknowledge_capability_set
        - rdp_write_general_capability_set
        - rdp_write_input_capability_set
        - rdp_write_large_pointer_capability_set
        - rdp_write_multifragment_update_capability_set
        - rdp_write_order_capability_set
        - rdp_write_pointer_capability_set
        - rdp_write_remote_programs_capability_set
        - rdp_write_share_capability_set
        - rdp_write_surface_commands_capability_set
        - rdp_write_virtual_channel_capability_set
        - rdp_write_window_list_capability_set
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:4667,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/capabilities.c:4670,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4670,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4670,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/capabilities.c:4671,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:4672,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/capabilities.c:4673,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:4674,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/capabilities.c:4675,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/capabilities.c:4676,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/capabilities.c:4677,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:4680,7'
          Dst:             rdp_write_general_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4681,7'
          Dst:             rdp_write_bitmap_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4682,7'
          Dst:             rdp_write_order_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4683,7'
          Dst:             rdp_write_pointer_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4684,7'
          Dst:             rdp_write_input_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4685,7'
          Dst:             rdp_write_virtual_channel_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4686,7'
          Dst:             rdp_write_share_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4687,7'
          Dst:             rdp_write_font_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4688,7'
          Dst:             rdp_write_multifragment_update_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4689,7'
          Dst:             rdp_write_large_pointer_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4690,7'
          Dst:             rdp_write_desktop_composition_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4691,7'
          Dst:             rdp_write_surface_commands_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4692,7'
          Dst:             rdp_write_bitmap_codecs_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4693,7'
          Dst:             rdp_write_frame_acknowledge_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4698,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/capabilities.c:4702,8'
          Dst:             rdp_write_bitmap_cache_host_support_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4710,8'
          Dst:             rdp_write_remote_programs_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4711,8'
          Dst:             rdp_write_window_list_capability_set
        - Src:             'libfreerdp/core/capabilities.c:4715,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/capabilities.c:4716,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/capabilities.c:4721,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4721,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4721,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:4723,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/capabilities.c:4725,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4725,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4725,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/capabilities.c:4729,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/capabilities.c:4731,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    rdp_send_demand_active
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4736
      functionLinenumberEnd: 4749
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          81
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Release
        - rdp_send_pdu
        - rdp_send_stream_pdu_init
        - rdp_write_demand_active
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:4738,15'
          Dst:             rdp_send_stream_pdu_init
        - Src:             'libfreerdp/core/capabilities.c:4745,11'
          Dst:             rdp_write_demand_active
        - Src:             'libfreerdp/core/capabilities.c:4746,11'
          Dst:             rdp_send_pdu
        - Src:             'libfreerdp/core/capabilities.c:4747,2'
          Dst:             Stream_Release
    - functionName:    secondary_update_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.h'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.h:213,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_recv_demand_active
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4614
      functionLinenumberEnd: 4657
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          230
      EdgeCount:       58
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_SafeSeekEx
        - Stream_Seek_UINT32
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_read_capability_sets
        - secondary_update_cast
        - stream_read_u16_le
        - stream_read_u32_le
        - tpkt_ensure_stream_consumed_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:4618,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4619,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4620,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4621,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4625,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:4628,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/capabilities.c:4629,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:4630,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/capabilities.c:4632,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/capabilities.c:4633,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:4637,7'
          Dst:             rdp_read_capability_sets
        - Src:             'libfreerdp/core/capabilities.c:4640,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:4640,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/capabilities.c:4644,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/capabilities.c:4649,2'
          Dst:             Stream_Seek_UINT32
        - Src:             'libfreerdp/core/capabilities.c:4652,46'
          Dst:             secondary_update_cast
        - Src:             'libfreerdp/core/capabilities.c:4656,9'
          Dst:             tpkt_ensure_stream_consumed_
    - functionName:    rdp_recv_get_active_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/capabilities.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4588
      functionLinenumberEnd: 4611
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          147
      EdgeCount:       41
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_shall_disconnect_context
        - rdp_read_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/capabilities.c:4589,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4590,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/capabilities.c:4592,7'
          Dst:             rdp_read_header
        - Src:             'libfreerdp/core/capabilities.c:4595,6'
          Dst:             freerdp_shall_disconnect_context
        - Src:             'libfreerdp/core/capabilities.c:4604,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/capabilities.c:4604,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    PubSub_OnStateChanged
      functionSourceFile: '/src/FreeRDP/include/freerdp/event.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - PubSub_OnEvent
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/event.h:155,2'
          Dst:             winpr_int_assert
        - Src:             'include/freerdp/event.h:155,2'
          Dst:             PubSub_OnEvent
    - 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_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:    3
      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_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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1242,3'
          Dst:             Stream_Fill
    - 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:    1
      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:    1
      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:    rdp_client_establish_keys
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 880
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         73
      ICount:          404
      EdgeCount:       93
      CyclomaticComplexity: 22
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - Stream_Zero
        - WLog_Print_dbg_tag
        - calloc
        - crypto_rsa_public_encrypt
        - freerdp_certificate_get_info
        - freerdp_get_transport
        - freerdp_settings_set_pointer_len
        - rdp_client_transition_to_state
        - rdp_free_rc4_decrypt_keys
        - rdp_free_rc4_encrypt_keys
        - rdp_reset_rc4_decrypt_keys
        - rdp_reset_rc4_encrypt_keys
        - rdp_write_header
        - rdp_write_security_header
        - security_establish_keys
        - transport_write
        - winpr_Cipher_Free
        - winpr_Cipher_NewEx
        - winpr_RAND
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:746,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:750,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:757,7'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/connection.c:761,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/connection.c:764,6'
          Dst:             winpr_RAND
        - Src:             'libfreerdp/core/connection.c:767,28'
          Dst:             freerdp_certificate_get_info
        - Src:             'libfreerdp/core/connection.c:770,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:778,24'
          Dst:             calloc
        - Src:             'libfreerdp/core/connection.c:783,6'
          Dst:             crypto_rsa_public_encrypt
        - Src:             'libfreerdp/core/connection.c:792,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/connection.c:796,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:802,8'
          Dst:             rdp_write_header
        - Src:             'libfreerdp/core/connection.c:804,8'
          Dst:             rdp_write_security_header
        - Src:             'libfreerdp/core/connection.c:808,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:808,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:808,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/connection.c:809,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/connection.c:810,2'
          Dst:             Stream_Zero
        - Src:             'libfreerdp/core/connection.c:811,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/connection.c:814,29'
          Dst:             freerdp_get_transport
        - Src:             'libfreerdp/core/connection.c:815,22'
          Dst:             transport_write
        - Src:             'libfreerdp/core/connection.c:824,7'
          Dst:             security_establish_keys
        - Src:             'libfreerdp/core/connection.c:835,7'
          Dst:             winpr_Cipher_NewEx
        - Src:             'libfreerdp/core/connection.c:840,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:845,7'
          Dst:             winpr_Cipher_NewEx
        - Src:             'libfreerdp/core/connection.c:850,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:858,7'
          Dst:             rdp_reset_rc4_encrypt_keys
        - Src:             'libfreerdp/core/connection.c:860,7'
          Dst:             rdp_reset_rc4_decrypt_keys
        - Src:             'libfreerdp/core/connection.c:865,2'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/connection.c:870,3'
          Dst:             winpr_Cipher_Free
        - Src:             'libfreerdp/core/connection.c:871,3'
          Dst:             winpr_Cipher_Free
        - Src:             'libfreerdp/core/connection.c:875,3'
          Dst:             rdp_free_rc4_decrypt_keys
        - Src:             'libfreerdp/core/connection.c:876,3'
          Dst:             rdp_free_rc4_encrypt_keys
    - functionName:    rdp_client_transition_to_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1415
      functionLinenumberEnd: 1462
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         53
      ICount:          248
      EdgeCount:       59
      CyclomaticComplexity: 8
      functionsReached:
        - PubSub_OnActivated
        - PubSub_OnConnectionStateChange
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_finalize_is_flag_set
        - rdp_get_state
        - rdp_get_state_string
        - rdp_is_active_state
        - rdp_set_state
        - rdp_state_string
        - update_reset_state
        - winpr_int_assert
      functionUses:    33
      BranchProfiles:
        - Branch String:   'libfreerdp/core/connection.c:1424,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1416,21'
          Dst:             rdp_state_string
        - Src:             'libfreerdp/core/connection.c:1418,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1419,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/connection.c:1419,2'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/connection.c:1419,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/connection.c:1421,7'
          Dst:             rdp_set_state
        - Src:             'libfreerdp/core/connection.c:1431,4'
          Dst:             update_reset_state
        - Src:             'libfreerdp/core/connection.c:1440,9'
          Dst:             rdp_finalize_is_flag_set
        - Src:             'libfreerdp/core/connection.c:1441,8'
          Dst:             PubSub_OnActivated
        - Src:             'libfreerdp/core/connection.c:1455,22'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/connection.c:1455,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1455,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1456,23'
          Dst:             rdp_is_active_state
        - Src:             'libfreerdp/core/connection.c:1457,7'
          Dst:             PubSub_OnConnectionStateChange
    - 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:    56
      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:    rdp_state_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2051
      functionLinenumberEnd: 2119
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          172
      EdgeCount:       66
      CyclomaticComplexity: 34
      functionsReached: []
      functionUses:    8
      BranchProfiles:
        - Branch String:   'libfreerdp/core/connection.c:2052,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    rdp_get_state_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2150
      functionLinenumberEnd: 2152
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_get_state
        - rdp_state_string
      functionUses:    30
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:2151,27'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/connection.c:2152,9'
          Dst:             rdp_state_string
    - functionName:    rdp_set_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2128
      functionLinenumberEnd: 2146
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          95
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - PubSub_OnStateChanged
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:2129,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:2132,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:2141,18'
          Dst:             PubSub_OnStateChanged
        - Src:             'libfreerdp/core/connection.c:2143,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PubSub_OnActivated
      functionSourceFile: '/src/FreeRDP/include/freerdp/event.h'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - PubSub_OnEvent
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/event.h:73,2'
          Dst:             winpr_int_assert
        - Src:             'include/freerdp/event.h:73,2'
          Dst:             PubSub_OnEvent
    - functionName:    rdp_get_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2122
      functionLinenumberEnd: 2124
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:2123,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_is_active_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1996
      functionLinenumberEnd: 2005
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_get_bool
        - rdp_get_state
        - rdp_is_active_client_state
        - rdp_is_active_peer_state
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1997,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1998,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:2000,33'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/connection.c:2001,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/connection.c:2002,10'
          Dst:             rdp_is_active_peer_state
        - Src:             'libfreerdp/core/connection.c:2004,10'
          Dst:             rdp_is_active_client_state
    - functionName:    PubSub_OnConnectionStateChange
      functionSourceFile: '/src/FreeRDP/include/freerdp/event.h'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - PubSub_OnEvent
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/event.h:78,2'
          Dst:             winpr_int_assert
        - Src:             'include/freerdp/event.h:78,2'
          Dst:             PubSub_OnEvent
    - functionName:    rdp_is_active_peer_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1953
      functionLinenumberEnd: 1969
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       16
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/connection.c:1958,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    rdp_is_active_client_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1972
      functionLinenumberEnd: 1993
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          59
      EdgeCount:       26
      CyclomaticComplexity: 14
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/connection.c:1977,2'
          Branch Sides:    []
      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:    rdp_client_redirect_resolvable
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 592
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freeaddrinfo
        - freerdp_tcp_resolve_host
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:593,28'
          Dst:             freerdp_tcp_resolve_host
        - Src:             'libfreerdp/core/connection.c:598,2'
          Dst:             freeaddrinfo
    - 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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.h:171,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_client_connect_confirm_active
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2189
      functionLinenumberEnd: 2248
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         65
      ICount:          333
      EdgeCount:       78
      CyclomaticComplexity: 15
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_shall_disconnect_context
        - input_register_client_callbacks
        - rdp_client_connect_finalize
        - rdp_client_transition_to_state
        - rdp_finalize_reset_flags
        - rdp_send_confirm_active
        - update_cast
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:2190,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:2191,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:2192,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:2197,7'
          Dst:             rdp_send_confirm_active
        - Src:             'libfreerdp/core/connection.c:2200,7'
          Dst:             input_register_client_callbacks
        - Src:             'libfreerdp/core/connection.c:2202,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:2218,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:2221,29'
          Dst:             update_cast
        - Src:             'libfreerdp/core/connection.c:2223,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:2227,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:2232,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:2233,6'
          Dst:             freerdp_shall_disconnect_context
        - Src:             'libfreerdp/core/connection.c:2238,12'
          Dst:             rdp_client_connect_finalize
        - Src:             'libfreerdp/core/connection.c:2241,8'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/connection.c:2245,7'
          Dst:             rdp_finalize_reset_flags
    - functionName:    rdp_client_connect_finalize
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1364
      functionLinenumberEnd: 1412
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          166
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - freerdp_settings_get_bool
        - rdp_client_transition_to_state
        - rdp_finalize_is_flag_set
        - rdp_send_client_control_pdu
        - rdp_send_client_font_list_pdu
        - rdp_send_client_persistent_key_list_pdu
        - rdp_send_client_synchronize_pdu
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1365,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1372,7'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/connection.c:1375,7'
          Dst:             rdp_send_client_synchronize_pdu
        - Src:             'libfreerdp/core/connection.c:1378,7'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/connection.c:1380,7'
          Dst:             rdp_send_client_control_pdu
        - Src:             'libfreerdp/core/connection.c:1383,7'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/connection.c:1385,7'
          Dst:             rdp_send_client_control_pdu
        - Src:             'libfreerdp/core/connection.c:1395,7'
          Dst:             rdp_finalize_is_flag_set
        - Src:             'libfreerdp/core/connection.c:1396,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/connection.c:1398,8'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/connection.c:1400,8'
          Dst:             rdp_send_client_persistent_key_list_pdu
        - Src:             'libfreerdp/core/connection.c:1404,7'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/connection.c:1406,7'
          Dst:             rdp_send_client_font_list_pdu
        - Src:             'libfreerdp/core/connection.c:1409,7'
          Dst:             rdp_client_transition_to_state
    - functionName:    rdp_channels_from_mcs
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2156
      functionLinenumberEnd: 2180
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          118
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_settings_set_pointer_array
        - freerdp_settings_set_pointer_len
        - freerdp_settings_set_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:2159,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:2162,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:2164,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/connection.c:2175,8'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/connection.c:2179,9'
          Dst:             freerdp_settings_set_uint32
    - functionName:    rdp_client_connection_state_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2036
      functionLinenumberEnd: 2048
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       10
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/connection.c:2037,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    rdp_server_reactivate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1932
      functionLinenumberEnd: 1950
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          94
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - rdp_finalize_set_flag
        - rdp_peer_handle_state_demand_active
        - rdp_send_deactivate_all
        - rdp_server_transition_to_state
        - state_run_success
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1941,7'
          Dst:             rdp_send_deactivate_all
        - Src:             'libfreerdp/core/connection.c:1944,2'
          Dst:             rdp_finalize_set_flag
        - Src:             'libfreerdp/core/connection.c:1945,7'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/connection.c:1948,19'
          Dst:             rdp_peer_handle_state_demand_active
        - Src:             'libfreerdp/core/connection.c:1949,9'
          Dst:             state_run_success
    - functionName:    rdp_server_transition_to_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2008
      functionLinenumberEnd: 2032
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          122
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_get_state
        - rdp_get_state_string
        - rdp_is_active_peer_state
        - rdp_set_state
        - rdp_state_string
        - winpr_int_assert
      functionUses:    37
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:2011,34'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/connection.c:2015,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:2019,7'
          Dst:             rdp_is_active_peer_state
        - Src:             'libfreerdp/core/connection.c:2025,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/connection.c:2025,2'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/connection.c:2025,2'
          Dst:             rdp_state_string
        - Src:             'libfreerdp/core/connection.c:2025,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/connection.c:2027,7'
          Dst:             rdp_set_state
    - functionName:    rdp_server_send_sync
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1878
      functionLinenumberEnd: 1892
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          84
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - rdp_finalize_reset_flags
        - rdp_send_server_control_cooperate_pdu
        - rdp_send_server_synchronize_pdu
        - rdp_server_transition_to_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1879,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1881,7'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/connection.c:1883,7'
          Dst:             rdp_send_server_synchronize_pdu
        - Src:             'libfreerdp/core/connection.c:1885,7'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/connection.c:1887,7'
          Dst:             rdp_send_server_control_cooperate_pdu
        - Src:             'libfreerdp/core/connection.c:1889,7'
          Dst:             rdp_finalize_reset_flags
        - Src:             'libfreerdp/core/connection.c:1891,9'
          Dst:             rdp_server_transition_to_state
    - functionName:    rdp_server_accept_confirm_active
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1895
      functionLinenumberEnd: 1929
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          186
      EdgeCount:       56
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - rdp_finalize_set_flag
        - rdp_get_state
        - rdp_get_state_string
        - rdp_recv_confirm_active
        - rdp_server_send_sync
        - rdp_state_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1896,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1897,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1898,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1899,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1902,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1904,6'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/connection.c:1906,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/connection.c:1907,4'
          Dst:             rdp_finalize_set_flag
        - Src:             'libfreerdp/core/connection.c:1910,4'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/connection.c:1910,4'
          Dst:             rdp_state_string
        - Src:             'libfreerdp/core/connection.c:1910,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1916,7'
          Dst:             rdp_recv_confirm_active
        - Src:             'libfreerdp/core/connection.c:1921,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1928,9'
          Dst:             rdp_server_send_sync
    - functionName:    rdp_server_accept_mcs_channel_join_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1827
      functionLinenumberEnd: 1875
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         66
      ICount:          306
      EdgeCount:       80
      CyclomaticComplexity: 16
      functionsReached:
        - WLog_Print_dbg_tag
        - mcs_recv_channel_join_request
        - mcs_send_channel_join_confirm
        - rdp_get_state
        - rdp_server_transition_to_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1832,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1833,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1836,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1838,2'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/connection.c:1838,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1840,7'
          Dst:             mcs_recv_channel_join_request
        - Src:             'libfreerdp/core/connection.c:1843,7'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/connection.c:1846,7'
          Dst:             mcs_send_channel_join_confirm
        - Src:             'libfreerdp/core/connection.c:1859,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1874,9'
          Dst:             rdp_server_transition_to_state
    - functionName:    rdp_server_skip_mcs_channel_join
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1791
      functionLinenumberEnd: 1807
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          93
      EdgeCount:       20
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - rdp_server_transition_to_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1792,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1795,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1804,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1807,9'
          Dst:             rdp_server_transition_to_state
    - functionName:    rdp_server_accept_mcs_attach_user_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1811
      functionLinenumberEnd: 1824
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - freerdp_settings_get_bool
        - mcs_recv_attach_user_request
        - mcs_send_attach_user_confirm
        - rdp_server_skip_mcs_channel_join
        - rdp_server_transition_to_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1812,7'
          Dst:             mcs_recv_attach_user_request
        - Src:             'libfreerdp/core/connection.c:1815,7'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/connection.c:1818,7'
          Dst:             mcs_send_attach_user_confirm
        - Src:             'libfreerdp/core/connection.c:1821,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/connection.c:1822,10'
          Dst:             rdp_server_skip_mcs_channel_join
        - Src:             'libfreerdp/core/connection.c:1823,9'
          Dst:             rdp_server_transition_to_state
    - functionName:    rdp_server_accept_mcs_erect_domain_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1779
      functionLinenumberEnd: 1788
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          75
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - mcs_recv_erect_domain_request
        - rdp_get_state
        - rdp_server_transition_to_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1780,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1781,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1782,2'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/connection.c:1782,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1784,7'
          Dst:             mcs_recv_erect_domain_request
        - Src:             'libfreerdp/core/connection.c:1787,9'
          Dst:             rdp_server_transition_to_state
    - functionName:    rdp_update_encryption_level
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1582
      functionLinenumberEnd: 1727
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         60
      ICount:          262
      EdgeCount:       67
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_uint32
        - freerdp_settings_set_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/connection.c:1606,3'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/connection.c:1636,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/connection.c:1694,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1583,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1585,27'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/connection.c:1586,29'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/connection.c:1609,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1613,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1617,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1621,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1625,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1629,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1630,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1648,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1659,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1680,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1687,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1697,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1701,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1705,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1709,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1713,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1717,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1722,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/connection.c:1724,7'
          Dst:             freerdp_settings_set_uint32
    - functionName:    rdp_server_accept_mcs_connect_initial
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1730
      functionLinenumberEnd: 1776
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         63
      ICount:          259
      EdgeCount:       73
      CyclomaticComplexity: 12
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_addin_argv_free
        - freerdp_addin_argv_new
        - freerdp_static_channel_collection_add
        - mcs_recv_connect_initial
        - mcs_send_connect_response
        - mcs_server_apply_to_settings
        - rdp_get_state
        - rdp_server_transition_to_state
        - rdp_update_encryption_level
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1731,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1732,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1735,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1737,2'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/connection.c:1737,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1738,7'
          Dst:             mcs_recv_connect_initial
        - Src:             'libfreerdp/core/connection.c:1740,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1742,7'
          Dst:             mcs_server_apply_to_settings
        - Src:             'libfreerdp/core/connection.c:1745,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1746,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1748,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1754,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1755,9'
          Dst:             freerdp_addin_argv_new
        - Src:             'libfreerdp/core/connection.c:1759,8'
          Dst:             freerdp_static_channel_collection_add
        - Src:             'libfreerdp/core/connection.c:1761,4'
          Dst:             freerdp_addin_argv_free
        - Src:             'libfreerdp/core/connection.c:1766,7'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/connection.c:1768,7'
          Dst:             rdp_update_encryption_level
        - Src:             'libfreerdp/core/connection.c:1770,7'
          Dst:             mcs_send_connect_response
        - Src:             'libfreerdp/core/connection.c:1772,7'
          Dst:             rdp_server_transition_to_state
    - functionName:    rdp_server_accept_nego
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1465
      functionLinenumberEnd: 1579
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         92
      ICount:          462
      EdgeCount:       115
      CyclomaticComplexity: 25
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - nego_get_requested_protocols
        - nego_get_selected_protocol
        - nego_read_request
        - nego_send_negotiation_response
        - nego_set_selected_protocol
        - transport_accept_nla
        - transport_accept_rdp
        - transport_accept_rdstls
        - transport_accept_tls
        - transport_set_blocking_mode
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1472,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1473,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1476,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1479,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1481,7'
          Dst:             transport_set_blocking_mode
        - Src:             'libfreerdp/core/connection.c:1484,7'
          Dst:             nego_read_request
        - Src:             'libfreerdp/core/connection.c:1487,23'
          Dst:             nego_get_requested_protocols
        - Src:             'libfreerdp/core/connection.c:1488,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1493,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1524,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1531,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1536,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1541,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1546,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1553,7'
          Dst:             nego_set_selected_protocol
        - Src:             'libfreerdp/core/connection.c:1556,7'
          Dst:             nego_send_negotiation_response
        - Src:             'libfreerdp/core/connection.c:1559,21'
          Dst:             nego_get_selected_protocol
        - Src:             'libfreerdp/core/connection.c:1562,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/connection.c:1567,12'
          Dst:             transport_accept_rdstls
        - Src:             'libfreerdp/core/connection.c:1569,12'
          Dst:             transport_accept_nla
        - Src:             'libfreerdp/core/connection.c:1571,12'
          Dst:             transport_accept_tls
        - Src:             'libfreerdp/core/connection.c:1573,12'
          Dst:             transport_accept_rdp
        - Src:             'libfreerdp/core/connection.c:1578,9'
          Dst:             transport_set_blocking_mode
    - functionName:    rdp_handle_optional_rdp_decryption
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2252
      functionLinenumberEnd: 2275
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          116
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - rdp_decrypt
        - rdp_read_security_header
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:2254,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:2255,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:2260,8'
          Dst:             rdp_read_security_header
        - Src:             'libfreerdp/core/connection.c:2265,9'
          Dst:             rdp_decrypt
    - functionName:    rdp_client_connect_demand_active
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1361
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          184
      EdgeCount:       45
      CyclomaticComplexity: 8
      functionsReached:
        - freerdp_shall_disconnect_context
        - rdp_handle_message_channel
        - rdp_handle_optional_rdp_decryption
        - rdp_read_share_control_header
        - rdp_recv_demand_active
        - rdp_recv_get_active_header
        - rdp_recv_out_of_sequence_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/connection.c:1352,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1330,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1331,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1332,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1334,7'
          Dst:             rdp_recv_get_active_header
        - Src:             'libfreerdp/core/connection.c:1337,6'
          Dst:             freerdp_shall_disconnect_context
        - Src:             'libfreerdp/core/connection.c:1343,10'
          Dst:             rdp_handle_message_channel
        - Src:             'libfreerdp/core/connection.c:1346,7'
          Dst:             rdp_handle_optional_rdp_decryption
        - Src:             'libfreerdp/core/connection.c:1349,7'
          Dst:             rdp_read_share_control_header
        - Src:             'libfreerdp/core/connection.c:1355,9'
          Dst:             rdp_recv_demand_active
        - Src:             'libfreerdp/core/connection.c:1359,11'
          Dst:             rdp_recv_out_of_sequence_pdu
    - functionName:    rdp_handle_message_channel
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1168
      functionLinenumberEnd: 1209
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          251
      EdgeCount:       70
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_decrypt
        - rdp_read_security_header
        - rdp_recv_message_channel_pdu
        - state_run_success
        - tpkt_ensure_stream_consumed_
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1169,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1170,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1174,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/connection.c:1174,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/connection.c:1180,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/connection.c:1180,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/connection.c:1186,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/connection.c:1186,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/connection.c:1193,7'
          Dst:             rdp_read_security_header
        - Src:             'libfreerdp/core/connection.c:1198,8'
          Dst:             rdp_decrypt
        - Src:             'libfreerdp/core/connection.c:1202,25'
          Dst:             rdp_recv_message_channel_pdu
        - Src:             'libfreerdp/core/connection.c:1203,6'
          Dst:             state_run_success
        - Src:             'libfreerdp/core/connection.c:1205,8'
          Dst:             tpkt_ensure_stream_consumed_
    - functionName:    rdp_client_connect_license
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1250
      functionLinenumberEnd: 1321
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          240
      EdgeCount:       52
      CyclomaticComplexity: 13
      functionsReached:
        - WLog_Print_dbg_tag
        - license_get_state
        - license_recv
        - rdp_client_transition_to_state
        - rdp_decrypt
        - rdp_handle_message_channel
        - rdp_read_header
        - rdp_read_security_header
        - rdp_security_flag_string
        - state_run_failed
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/connection.c:1299,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1257,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1258,7'
          Dst:             rdp_read_header
        - Src:             'libfreerdp/core/connection.c:1267,10'
          Dst:             rdp_handle_message_channel
        - Src:             'libfreerdp/core/connection.c:1270,7'
          Dst:             rdp_read_security_header
        - Src:             'libfreerdp/core/connection.c:1275,8'
          Dst:             rdp_decrypt
        - Src:             'libfreerdp/core/connection.c:1280,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1287,3'
          Dst:             rdp_security_flag_string
        - Src:             'libfreerdp/core/connection.c:1287,3'
          Dst:             rdp_security_flag_string
        - Src:             'libfreerdp/core/connection.c:1287,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1293,11'
          Dst:             license_recv
        - Src:             'libfreerdp/core/connection.c:1295,6'
          Dst:             state_run_failed
        - Src:             'libfreerdp/core/connection.c:1298,10'
          Dst:             license_get_state
        - Src:             'libfreerdp/core/connection.c:1302,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1307,10'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/connection.c:1313,10'
          Dst:             rdp_client_transition_to_state
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    rdp_client_connect_auto_detect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1212
      functionLinenumberEnd: 1246
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          161
      EdgeCount:       39
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_GetPosition
        - Stream_SetPosition
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_handle_message_channel
        - rdp_read_header
        - state_run_success
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1214,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1215,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1217,15'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/connection.c:1221,7'
          Dst:             rdp_read_header
        - Src:             'libfreerdp/core/connection.c:1231,27'
          Dst:             rdp_handle_message_channel
        - Src:             'libfreerdp/core/connection.c:1232,10'
          Dst:             state_run_success
        - Src:             'libfreerdp/core/connection.c:1233,10'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/connection.c:1237,16'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/connection.c:1238,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/connection.c:1238,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/connection.c:1244,7'
          Dst:             Stream_SetPosition
    - functionName:    rdp_client_join_channel
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1047
      functionLinenumberEnd: 1058
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          70
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - mcs_send_channel_join_request
        - rdp_client_transition_to_state
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1048,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1051,7'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/connection.c:1053,7'
          Dst:             mcs_send_channel_join_request
        - Src:             'libfreerdp/core/connection.c:1055,7'
          Dst:             rdp_client_transition_to_state
    - functionName:    rdp_client_connect_mcs_channel_join_confirm
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1061
      functionLinenumberEnd: 1165
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         70
      ICount:          402
      EdgeCount:       94
      CyclomaticComplexity: 26
      functionsReached:
        - WLog_Print_dbg_tag
        - mcs_recv_channel_join_confirm
        - rdp_client_join_channel
        - rdp_client_send_client_info_and_change_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1065,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1068,7'
          Dst:             mcs_recv_channel_join_confirm
        - Src:             'libfreerdp/core/connection.c:1075,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1081,8'
          Dst:             rdp_client_join_channel
        - Src:             'libfreerdp/core/connection.c:1088,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1096,9'
          Dst:             rdp_client_join_channel
        - Src:             'libfreerdp/core/connection.c:1105,10'
          Dst:             rdp_client_join_channel
        - Src:             'libfreerdp/core/connection.c:1115,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1125,9'
          Dst:             rdp_client_join_channel
        - Src:             'libfreerdp/core/connection.c:1141,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1152,9'
          Dst:             rdp_client_join_channel
        - Src:             'libfreerdp/core/connection.c:1160,8'
          Dst:             rdp_client_send_client_info_and_change_state
    - functionName:    rdp_client_send_client_info_and_change_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1012
      functionLinenumberEnd: 1023
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          72
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - rdp_client_establish_keys
        - rdp_client_transition_to_state
        - rdp_send_client_info
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1013,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1014,7'
          Dst:             rdp_client_establish_keys
        - Src:             'libfreerdp/core/connection.c:1016,7'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/connection.c:1018,7'
          Dst:             rdp_send_client_info
        - Src:             'libfreerdp/core/connection.c:1020,7'
          Dst:             rdp_client_transition_to_state
    - functionName:    rdp_client_skip_mcs_channel_join
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1026
      functionLinenumberEnd: 1043
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          93
      EdgeCount:       20
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - rdp_client_send_client_info_and_change_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:1027,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1030,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:1039,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:1043,9'
          Dst:             rdp_client_send_client_info_and_change_state
    - functionName:    rdp_update_client_random
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 884
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          120
      EdgeCount:       34
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - crypto_rsa_private_decrypt
        - freerdp_key_get_info
        - freerdp_settings_get_pointer
        - freerdp_settings_get_pointer_writable
        - freerdp_settings_set_pointer_len
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:886,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:888,29'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/core/connection.c:889,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:891,29'
          Dst:             freerdp_key_get_info
        - Src:             'libfreerdp/core/connection.c:892,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:896,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:899,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/connection.c:902,24'
          Dst:             freerdp_settings_get_pointer_writable
        - Src:             'libfreerdp/core/connection.c:903,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:904,9'
          Dst:             crypto_rsa_private_decrypt
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,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:    1
      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:    rdp_server_establish_keys
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 909
      functionLinenumberEnd: 1009
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         72
      ICount:          368
      EdgeCount:       91
      CyclomaticComplexity: 21
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_ConstPointer
        - Stream_SafeSeekEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_free_rc4_decrypt_keys
        - rdp_free_rc4_encrypt_keys
        - rdp_read_header
        - rdp_read_security_header
        - rdp_reset_rc4_decrypt_keys
        - rdp_reset_rc4_encrypt_keys
        - rdp_update_client_random
        - security_establish_keys
        - stream_read_u32_le
        - tpkt_ensure_stream_consumed_
        - winpr_Cipher_Free
        - winpr_Cipher_NewEx
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:916,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:924,7'
          Dst:             rdp_read_header
        - Src:             'libfreerdp/core/connection.c:927,7'
          Dst:             rdp_read_security_header
        - Src:             'libfreerdp/core/connection.c:929,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/connection.c:929,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/connection.c:935,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/connection.c:935,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/connection.c:941,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/connection.c:944,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/connection.c:947,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/connection.c:950,29'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/connection.c:951,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/connection.c:953,7'
          Dst:             rdp_update_client_random
        - Src:             'libfreerdp/core/connection.c:957,7'
          Dst:             security_establish_keys
        - Src:             'libfreerdp/core/connection.c:965,7'
          Dst:             winpr_Cipher_NewEx
        - Src:             'libfreerdp/core/connection.c:970,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/connection.c:970,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/connection.c:975,7'
          Dst:             winpr_Cipher_NewEx
        - Src:             'libfreerdp/core/connection.c:980,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/connection.c:980,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/connection.c:988,7'
          Dst:             rdp_reset_rc4_encrypt_keys
        - Src:             'libfreerdp/core/connection.c:991,7'
          Dst:             rdp_reset_rc4_decrypt_keys
        - Src:             'libfreerdp/core/connection.c:994,8'
          Dst:             tpkt_ensure_stream_consumed_
        - Src:             'libfreerdp/core/connection.c:999,3'
          Dst:             winpr_Cipher_Free
        - Src:             'libfreerdp/core/connection.c:1000,3'
          Dst:             winpr_Cipher_Free
        - Src:             'libfreerdp/core/connection.c:1004,3'
          Dst:             rdp_free_rc4_encrypt_keys
        - Src:             'libfreerdp/core/connection.c:1005,3'
          Dst:             rdp_free_rc4_decrypt_keys
    - functionName:    rdp_client_reconnect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 724
      functionLinenumberEnd: 737
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_settings_set_bool
        - rdp_client_connect
        - rdp_client_disconnect_and_clear
        - rdp_client_reconnect_channels
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:725,7'
          Dst:             rdp_client_disconnect_and_clear
        - Src:             'libfreerdp/core/connection.c:728,7'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/connection.c:731,16'
          Dst:             rdp_client_connect
        - Src:             'libfreerdp/core/connection.c:734,12'
          Dst:             rdp_client_reconnect_channels
    - functionName:    rdp_client_disconnect_and_clear
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 539
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          77
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - clearChannelError
        - freerdp_get_last_error
        - rdp_client_disconnect
        - utils_reset_abort
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:542,7'
          Dst:             rdp_client_disconnect
        - Src:             'libfreerdp/core/connection.c:545,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:548,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:550,6'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/connection.c:554,2'
          Dst:             clearChannelError
        - Src:             'libfreerdp/core/connection.c:555,9'
          Dst:             utils_reset_abort
    - functionName:    rdp_client_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 501
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         120
      ICount:          771
      EdgeCount:       157
      CyclomaticComplexity: 39
      functionsReached:
        - CharUpperBuffA
        - WLog_Print_dbg_tag
        - arm_resolve_endpoint
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - freerdp_settings_get_bool
        - freerdp_settings_get_string
        - freerdp_settings_get_uint32
        - freerdp_settings_set_string
        - nego_connect
        - nego_enable_aad
        - nego_enable_ext
        - nego_enable_nla
        - nego_enable_rdp
        - nego_enable_rdstls
        - nego_enable_tls
        - nego_get_selected_protocol
        - nego_init
        - nego_set_RCG_required
        - nego_set_childsession_enabled
        - nego_set_cookie
        - nego_set_cookie_max_length
        - nego_set_gateway_bypass_local
        - nego_set_gateway_enabled
        - nego_set_negotiation_enabled
        - nego_set_preconnection_blob
        - nego_set_preconnection_id
        - nego_set_restricted_admin_mode_required
        - nego_set_routing_token
        - nego_set_send_preconnection_pdu
        - nego_set_target
        - rdp_client_reset_codecs
        - rdp_client_transition_to_state
        - rdp_client_wait_for_activation
        - rdp_log_build_warnings
        - rdp_recv_callback
        - strlen
        - transport_set_blocking_mode
        - transport_set_recv_callbacks
        - winpr_Cipher_Free
        - winpr_Cipher_NewEx
        - winpr_FIPSMode
        - winpr_InitializeSSL
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:309,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:312,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:314,7'
          Dst:             rdp_client_reset_codecs
        - Src:             'libfreerdp/core/connection.c:320,7'
          Dst:             winpr_InitializeSSL
        - Src:             'libfreerdp/core/connection.c:323,2'
          Dst:             rdp_log_build_warnings
        - Src:             'libfreerdp/core/connection.c:330,28'
          Dst:             winpr_FIPSMode
        - Src:             'libfreerdp/core/connection.c:337,9'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/connection.c:343,27'
          Dst:             winpr_Cipher_NewEx
        - Src:             'libfreerdp/core/connection.c:347,4'
          Dst:             winpr_Cipher_Free
        - Src:             'libfreerdp/core/connection.c:355,29'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/connection.c:358,8'
          Dst:             arm_resolve_endpoint
        - Src:             'libfreerdp/core/connection.c:360,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:368,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:373,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:378,2'
          Dst:             nego_init
        - Src:             'libfreerdp/core/connection.c:379,2'
          Dst:             nego_set_target
        - Src:             'libfreerdp/core/connection.c:390,18'
          Dst:             strlen
        - Src:             'libfreerdp/core/connection.c:398,32'
          Dst:             strlen
        - Src:             'libfreerdp/core/connection.c:406,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:407,3'
          Dst:             CharUpperBuffA
        - Src:             'libfreerdp/core/connection.c:414,12'
          Dst:             nego_set_cookie
        - Src:             'libfreerdp/core/connection.c:419,12'
          Dst:             nego_set_cookie
        - Src:             'libfreerdp/core/connection.c:425,2'
          Dst:             nego_set_childsession_enabled
        - Src:             'libfreerdp/core/connection.c:426,2'
          Dst:             nego_set_send_preconnection_pdu
        - Src:             'libfreerdp/core/connection.c:427,2'
          Dst:             nego_set_preconnection_id
        - Src:             'libfreerdp/core/connection.c:428,2'
          Dst:             nego_set_preconnection_blob
        - Src:             'libfreerdp/core/connection.c:429,2'
          Dst:             nego_set_negotiation_enabled
        - Src:             'libfreerdp/core/connection.c:430,2'
          Dst:             nego_set_restricted_admin_mode_required
        - Src:             'libfreerdp/core/connection.c:431,2'
          Dst:             nego_set_RCG_required
        - Src:             'libfreerdp/core/connection.c:432,2'
          Dst:             nego_set_gateway_enabled
        - Src:             'libfreerdp/core/connection.c:433,2'
          Dst:             nego_set_gateway_bypass_local
        - Src:             'libfreerdp/core/connection.c:434,2'
          Dst:             nego_enable_rdp
        - Src:             'libfreerdp/core/connection.c:435,2'
          Dst:             nego_enable_tls
        - Src:             'libfreerdp/core/connection.c:436,2'
          Dst:             nego_enable_nla
        - Src:             'libfreerdp/core/connection.c:437,2'
          Dst:             nego_enable_ext
        - Src:             'libfreerdp/core/connection.c:438,2'
          Dst:             nego_enable_rdstls
        - Src:             'libfreerdp/core/connection.c:439,2'
          Dst:             nego_enable_aad
        - Src:             'libfreerdp/core/connection.c:444,2'
          Dst:             nego_set_cookie_max_length
        - Src:             'libfreerdp/core/connection.c:448,8'
          Dst:             nego_set_routing_token
        - Src:             'libfreerdp/core/connection.c:453,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/connection.c:455,8'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/connection.c:458,8'
          Dst:             nego_connect
        - Src:             'libfreerdp/core/connection.c:460,9'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/connection.c:462,5'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/connection.c:464,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:470,22'
          Dst:             nego_get_selected_protocol
        - Src:             'libfreerdp/core/connection.c:478,10'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/connection.c:483,8'
          Dst:             rdp_recv_callback
        - Src:             'libfreerdp/core/connection.c:487,8'
          Dst:             transport_set_blocking_mode
        - Src:             'libfreerdp/core/connection.c:492,8'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/connection.c:497,7'
          Dst:             transport_set_recv_callbacks
        - Src:             'libfreerdp/core/connection.c:497,7'
          Dst:             rdp_recv_callback
        - Src:             'libfreerdp/core/connection.c:500,9'
          Dst:             rdp_client_wait_for_activation
    - functionName:    rdp_client_reconnect_channels
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          185
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_channels_post_connect
        - pointer_cache_register_callbacks
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:576,3'
          Dst:             pointer_cache_register_callbacks
        - Src:             'libfreerdp/core/connection.c:578,8'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:586,8'
          Dst:             freerdp_channels_post_connect
    - functionName:    rdp_client_reset_codecs
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          97
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - freerdp_client_codecs_free
        - freerdp_client_codecs_new
        - freerdp_client_codecs_prepare
        - freerdp_settings_get_bool
        - freerdp_settings_get_codecs_flags
        - freerdp_settings_get_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:208,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/connection.c:210,24'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/connection.c:211,3'
          Dst:             freerdp_client_codecs_free
        - Src:             'libfreerdp/core/connection.c:212,21'
          Dst:             freerdp_client_codecs_new
        - Src:             'libfreerdp/core/connection.c:218,38'
          Dst:             freerdp_settings_get_codecs_flags
        - Src:             'libfreerdp/core/connection.c:217,8'
          Dst:             freerdp_client_codecs_prepare
    - functionName:    rdp_client_wait_for_activation
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         54
      ICount:          231
      EdgeCount:       60
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - WaitForMultipleObjectsEx
        - freerdp_get_event_handles
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - freerdp_settings_get_uint32
        - rdp_check_fds
        - rdp_is_active_state
        - winpr_GetTickCount64
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/connection.c:263,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:241,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:244,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:246,15'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/connection.c:247,25'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/connection.c:253,19'
          Dst:             freerdp_get_event_handles
        - Src:             'libfreerdp/core/connection.c:256,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:261,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:262,13'
          Dst:             WaitForMultipleObjectsEx
        - Src:             'libfreerdp/core/connection.c:277,9'
          Dst:             rdp_check_fds
        - Src:             'libfreerdp/core/connection.c:279,6'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/connection.c:279,6'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/connection.c:286,7'
          Dst:             rdp_is_active_state
        - Src:             'libfreerdp/core/connection.c:249,45'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/connection.c:290,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:291,2'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/connection.c:291,2'
          Dst:             freerdp_set_last_error_ex
    - functionName:    rdp_client_disconnect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 504
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          142
      EdgeCount:       37
      CyclomaticComplexity: 12
      functionsReached:
        - freerdp_channels_disconnect
        - freerdp_client_codecs_free
        - nego_disconnect
        - rdp_client_transition_to_state
        - rdp_reset
        - transport_disconnect
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:514,8'
          Dst:             nego_disconnect
        - Src:             'libfreerdp/core/connection.c:518,7'
          Dst:             transport_disconnect
        - Src:             'libfreerdp/core/connection.c:521,7'
          Dst:             rdp_reset
        - Src:             'libfreerdp/core/connection.c:524,7'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/connection.c:529,7'
          Dst:             freerdp_channels_disconnect
        - Src:             'libfreerdp/core/connection.c:533,2'
          Dst:             freerdp_client_codecs_free
    - functionName:    rdp_client_redirect_try_netbios
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 629
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_settings_set_string
        - rdp_client_redirect_resolvable
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:633,7'
          Dst:             rdp_client_redirect_resolvable
        - Src:             'libfreerdp/core/connection.c:635,12'
          Dst:             freerdp_settings_set_string
    - functionName:    rdp_client_redirect_try_ip
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 618
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_set_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:621,11'
          Dst:             freerdp_settings_set_string
    - functionName:    rdp_client_redirect_try_fqdn
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 603
      functionLinenumberEnd: 615
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_settings_set_string
        - rdp_client_redirect_resolvable
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:607,7'
          Dst:             rdp_client_redirect_resolvable
        - Src:             'libfreerdp/core/connection.c:609,12'
          Dst:             freerdp_settings_set_string
    - functionName:    rdp_client_redirect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/connection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 644
      functionLinenumberEnd: 721
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         80
      ICount:          419
      EdgeCount:       100
      CyclomaticComplexity: 22
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_channels_close
        - freerdp_channels_disconnect
        - freerdp_settings_get_string
        - freerdp_settings_set_string
        - rdp_client_connect
        - rdp_client_disconnect_and_clear
        - rdp_client_reconnect_channels
        - rdp_client_redirect_try_fqdn
        - rdp_client_redirect_try_ip
        - rdp_client_redirect_try_netbios
        - rdp_redirection_apply_settings
        - utils_reload_channels
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/connection.c:648,7'
          Dst:             rdp_client_disconnect_and_clear
        - Src:             'libfreerdp/core/connection.c:653,2'
          Dst:             freerdp_channels_disconnect
        - Src:             'libfreerdp/core/connection.c:654,2'
          Dst:             freerdp_channels_close
        - Src:             'libfreerdp/core/connection.c:656,6'
          Dst:             rdp_redirection_apply_settings
        - Src:             'libfreerdp/core/connection.c:659,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:662,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:676,27'
          Dst:             rdp_client_redirect_try_fqdn
        - Src:             'libfreerdp/core/connection.c:679,27'
          Dst:             rdp_client_redirect_try_ip
        - Src:             'libfreerdp/core/connection.c:682,27'
          Dst:             rdp_client_redirect_try_netbios
        - Src:             'libfreerdp/core/connection.c:692,11'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/connection.c:690,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/connection.c:700,11'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/connection.c:698,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/connection.c:706,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:707,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/connection.c:708,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/connection.c:711,12'
          Dst:             utils_reload_channels
        - Src:             'libfreerdp/core/connection.c:715,11'
          Dst:             rdp_client_connect
        - Src:             'libfreerdp/core/connection.c:718,12'
          Dst:             rdp_client_reconnect_channels
    - 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_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:    10
      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:    rdp_redirection_write_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          120
      EdgeCount:       40
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:203,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:204,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:206,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/redirection.c:209,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:209,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:209,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/redirection.c:211,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/redirection.c:214,2'
          Dst:             Stream_Write
    - 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:    12
      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
      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:    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:    rdp_target_cert_write_element
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          186
      EdgeCount:       68
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:334,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:335,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:337,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/redirection.c:340,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:340,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:340,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/redirection.c:341,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:341,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:341,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/redirection.c:342,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:342,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:342,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/redirection.c:344,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/redirection.c:347,2'
          Dst:             Stream_Write
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    rdp_redirection_write_base64_wchar
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          66
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - crypto_base64_encode
        - rdp_redirection_write_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:223,17'
          Dst:             crypto_base64_encode
        - Src:             'libfreerdp/core/redirection.c:228,19'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/core/redirection.c:233,7'
          Dst:             rdp_redirection_write_data
    - functionName:    rdp_redirection_write_target_cert
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          71
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_certificate_get_der
        - rdp_target_cert_write_element
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:407,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:415,14'
          Dst:             freerdp_certificate_get_der
        - Src:             'libfreerdp/core/redirection.c:416,7'
          Dst:             rdp_target_cert_write_element
    - 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:    rdp_redirection_read_base64_wchar
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          186
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - ConvertWCharNToUtf8Alloc
        - WLog_Print_dbg_tag
        - calloc
        - crypto_base64_decode
        - rdp_redirection_flags_to_string
        - rdp_redirection_get_data
        - redirection_free_data
        - strnlen
        - strtok_s
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:245,7'
          Dst:             rdp_redirection_get_data
        - Src:             'libfreerdp/core/redirection.c:250,15'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'libfreerdp/core/redirection.c:254,2'
          Dst:             redirection_free_data
        - Src:             'libfreerdp/core/redirection.c:256,13'
          Dst:             strnlen
        - Src:             'libfreerdp/core/redirection.c:259,12'
          Dst:             calloc
        - Src:             'libfreerdp/core/redirection.c:267,15'
          Dst:             strtok_s
        - Src:             'libfreerdp/core/redirection.c:270,23'
          Dst:             strnlen
        - Src:             'libfreerdp/core/redirection.c:275,4'
          Dst:             crypto_base64_decode
        - Src:             'libfreerdp/core/redirection.c:282,10'
          Dst:             strtok_s
        - Src:             'libfreerdp/core/redirection.c:289,3'
          Dst:             rdp_redirection_flags_to_string
        - Src:             'libfreerdp/core/redirection.c:289,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:295,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rdp_redirection_get_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          86
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_Seek
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:152,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:153,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:155,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/redirection.c:158,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/redirection.c:160,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/redirection.c:163,11'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/redirection.c:164,2'
          Dst:             Stream_Seek
    - functionName:    redirection_free_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          45
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:87,2'
          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:    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:    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:    8
      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_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,3'
          Dst:             winpr_int_assert
    - 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:    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:    rdp_redirection_read_target_cert_stream
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - rdp_redirection_read_base64_wchar
        - rdp_redirection_read_target_cert
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:450,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:453,6'
          Dst:             rdp_redirection_read_base64_wchar
        - Src:             'libfreerdp/core/redirection.c:454,8'
          Dst:             rdp_redirection_read_target_cert
    - functionName:    rdp_redirection_read_target_cert
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          129
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_StaticConstInit
        - WLog_Print_dbg_tag
        - freerdp_certificate_free
        - freerdp_certificate_new_from_der
        - rdp_target_cert_get_element
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/redirection.c:371,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:354,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:357,15'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/core/redirection.c:359,2'
          Dst:             freerdp_certificate_free
        - Src:             'libfreerdp/core/redirection.c:364,9'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/redirection.c:368,8'
          Dst:             rdp_target_cert_get_element
        - Src:             'libfreerdp/core/redirection.c:377,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:380,29'
          Dst:             freerdp_certificate_new_from_der
        - Src:             'libfreerdp/core/redirection.c:382,8'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:387,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:393,5'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rdp_target_cert_get_element
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          137
      EdgeCount:       40
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_Seek
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:303,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:304,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:305,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:306,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:308,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/redirection.c:315,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/redirection.c:316,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/redirection.c:317,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/redirection.c:319,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/redirection.c:322,9'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/redirection.c:324,2'
          Dst:             Stream_Seek
    - functionName:    rdp_redirection_read_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          69
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - rdp_redirection_flags_to_string
        - rdp_redirection_get_data
        - redirection_free_data
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:649,7'
          Dst:             rdp_redirection_get_data
        - Src:             'libfreerdp/core/redirection.c:652,2'
          Dst:             redirection_free_data
        - Src:             'libfreerdp/core/redirection.c:659,2'
          Dst:             rdp_redirection_flags_to_string
        - Src:             'libfreerdp/core/redirection.c:659,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rdp_redirection_read_unicode_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          107
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - ConvertWCharNToUtf8Alloc
        - WLog_Print_dbg_tag
        - rdp_redirection_get_data
        - redirection_free_string
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:173,7'
          Dst:             rdp_redirection_get_data
        - Src:             'libfreerdp/core/redirection.c:180,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:186,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:190,2'
          Dst:             redirection_free_string
        - Src:             'libfreerdp/core/redirection.c:191,9'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'libfreerdp/core/redirection.c:194,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    redirection_free_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:80,2'
          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:    redirection_copy_array
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          131
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - _strdup
        - calloc
        - redirection_free_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:123,2'
          Dst:             redirection_free_array
        - Src:             'libfreerdp/core/redirection.c:130,17'
          Dst:             calloc
        - Src:             'libfreerdp/core/redirection.c:138,16'
          Dst:             _strdup
        - Src:             'libfreerdp/core/redirection.c:142,4'
          Dst:             redirection_free_array
    - functionName:    redirection_free_array
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          82
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:64,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:65,2'
          Dst:             winpr_int_assert
    - functionName:    redirection_set_array_option
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1301
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       23
      CyclomaticComplexity: 13
      functionsReached:
        - redirection_copy_array
        - redirection_unsupported
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/core/redirection.c:1293,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:1292,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1296,11'
          Dst:             redirection_copy_array
        - Src:             'libfreerdp/core/redirection.c:1299,11'
          Dst:             redirection_unsupported
    - functionName:    redirection_unsupported
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1231
      functionLinenumberEnd: 1237
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - rdp_redirection_flags_to_string
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:1234,2'
          Dst:             rdp_redirection_flags_to_string
        - Src:             'libfreerdp/core/redirection.c:1234,2'
          Dst:             rdp_redirection_flags_to_string
        - Src:             'libfreerdp/core/redirection.c:1234,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    redirection_copy_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _strdup
        - redirection_free_string
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:96,2'
          Dst:             redirection_free_string
        - Src:             'libfreerdp/core/redirection.c:100,9'
          Dst:             _strdup
    - functionName:    redirection_set_string_option
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1268
      functionLinenumberEnd: 1287
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          87
      EdgeCount:       31
      CyclomaticComplexity: 17
      functionsReached:
        - redirection_copy_string
        - redirection_unsupported
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/core/redirection.c:1270,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:1269,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1273,11'
          Dst:             redirection_copy_string
        - Src:             'libfreerdp/core/redirection.c:1275,11'
          Dst:             redirection_copy_string
        - Src:             'libfreerdp/core/redirection.c:1277,11'
          Dst:             redirection_copy_string
        - Src:             'libfreerdp/core/redirection.c:1279,11'
          Dst:             redirection_copy_string
        - Src:             'libfreerdp/core/redirection.c:1281,11'
          Dst:             redirection_copy_string
        - Src:             'libfreerdp/core/redirection.c:1283,11'
          Dst:             redirection_unsupported
    - functionName:    redirection_copy_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - redirection_free_data
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:106,2'
          Dst:             redirection_free_data
    - functionName:    redirection_set_byte_option
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1242
      functionLinenumberEnd: 1265
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          102
      EdgeCount:       31
      CyclomaticComplexity: 17
      functionsReached:
        - rdp_redirection_read_target_cert
        - redirection_copy_data
        - redirection_unsupported
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/core/redirection.c:1244,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:1243,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1247,11'
          Dst:             redirection_copy_data
        - Src:             'libfreerdp/core/redirection.c:1250,11'
          Dst:             redirection_copy_data
        - Src:             'libfreerdp/core/redirection.c:1253,11'
          Dst:             redirection_copy_data
        - Src:             'libfreerdp/core/redirection.c:1256,11'
          Dst:             redirection_copy_data
        - Src:             'libfreerdp/core/redirection.c:1259,11'
          Dst:             rdp_redirection_read_target_cert
        - Src:             'libfreerdp/core/redirection.c:1261,11'
          Dst:             redirection_unsupported
    - functionName:    redirection_set_session_id
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1224
      functionLinenumberEnd: 1227
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:1225,2'
          Dst:             winpr_int_assert
    - functionName:    redirection_set_flags
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1217
      functionLinenumberEnd: 1220
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:1218,2'
          Dst:             winpr_int_assert
    - functionName:    redirection_settings_are_valid
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1126
      functionLinenumberEnd: 1213
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         106
      ICount:          488
      EdgeCount:       138
      CyclomaticComplexity: 34
      functionsReached:
        - utils_str_is_empty
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:1129,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1145,7'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/redirection.c:1151,7'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/redirection.c:1163,7'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/redirection.c:1175,7'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/redirection.c:1181,7'
          Dst:             utils_str_is_empty
    - 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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1242,3'
          Dst:             Stream_Fill
    - functionName:    Stream_Seek_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1207
      functionLinenumberEnd: 1209
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1208,3'
          Dst:             Stream_Seek
    - functionName:    rdp_redireciton_write_target_cert_stream
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Buffer
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - rdp_redirection_write_base64_wchar
        - rdp_redirection_write_target_cert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:430,24'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/redirection.c:434,7'
          Dst:             rdp_redirection_write_target_cert
        - Src:             'libfreerdp/core/redirection.c:438,32'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/redirection.c:438,64'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/redirection.c:437,7'
          Dst:             rdp_redirection_write_base64_wchar
        - Src:             'libfreerdp/core/redirection.c:441,2'
          Dst:             Stream_Free
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    redir_write_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 973
      functionLinenumberEnd: 980
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          75
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:974,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/redirection.c:977,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:977,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:977,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/redirection.c:978,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:    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:    redir_write_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 969
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          186
      EdgeCount:       51
      CyclomaticComplexity: 8
      functionsReached:
        - ConvertUtf8ToWChar
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UTF16_String_From_UTF8
        - strlen
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:956,30'
          Dst:             ConvertUtf8ToWChar
        - Src:             'libfreerdp/core/redirection.c:959,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:959,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:960,22'
          Dst:             strlen
        - Src:             'libfreerdp/core/redirection.c:961,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/redirection.c:964,21'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/redirection.c:965,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:965,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:965,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/redirection.c:966,6'
          Dst:             Stream_Write_UTF16_String_From_UTF8
        - Src:             'libfreerdp/core/redirection.c:968,19'
          Dst:             Stream_GetPosition
    - functionName:    Stream_Seek_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1203
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1204,3'
          Dst:             Stream_Seek
    - 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:    3
      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:    rdp_write_enhanced_security_redirection_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 983
      functionLinenumberEnd: 1122
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         226
      ICount:          782
      EdgeCount:       257
      CyclomaticComplexity: 33
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek_UINT16
        - Stream_Seek_UINT32
        - Stream_SetPosition
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - Stream_Zero
        - rdp_redireciton_write_target_cert_stream
        - redir_write_data
        - redir_write_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:986,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:987,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:989,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/redirection.c:992,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/redirection.c:995,24'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/redirection.c:996,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/redirection.c:997,31'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/redirection.c:998,3'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/redirection.c:1001,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1001,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1001,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/redirection.c:1003,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/redirection.c:1005,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1005,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1005,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/redirection.c:1009,8'
          Dst:             redir_write_string
        - Src:             'libfreerdp/core/redirection.c:1016,9'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/redirection.c:1018,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1018,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1018,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/redirection.c:1019,4'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/redirection.c:1020,4'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/redirection.c:1021,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/redirection.c:1022,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/redirection.c:1027,8'
          Dst:             redir_write_string
        - Src:             'libfreerdp/core/redirection.c:1033,8'
          Dst:             redir_write_string
        - Src:             'libfreerdp/core/redirection.c:1040,9'
          Dst:             redir_write_data
        - Src:             'libfreerdp/core/redirection.c:1047,8'
          Dst:             redir_write_string
        - Src:             'libfreerdp/core/redirection.c:1053,8'
          Dst:             redir_write_string
        - Src:             'libfreerdp/core/redirection.c:1059,9'
          Dst:             redir_write_data
        - Src:             'libfreerdp/core/redirection.c:1066,9'
          Dst:             redir_write_data
        - Src:             'libfreerdp/core/redirection.c:1073,9'
          Dst:             rdp_redireciton_write_target_cert_stream
        - Src:             'libfreerdp/core/redirection.c:1081,9'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/redirection.c:1084,26'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/redirection.c:1085,4'
          Dst:             Stream_Seek_UINT32
        - Src:             'libfreerdp/core/redirection.c:1086,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1086,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1086,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/redirection.c:1089,25'
          Dst:             redir_write_string
        - Src:             'libfreerdp/core/redirection.c:1097,24'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/redirection.c:1098,9'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/redirection.c:1100,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1100,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1100,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/redirection.c:1101,9'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/redirection.c:1106,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/redirection.c:1108,3'
          Dst:             Stream_Zero
        - Src:             'libfreerdp/core/redirection.c:1111,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/redirection.c:1112,9'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/redirection.c:1114,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1114,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:1114,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/redirection.c:1115,9'
          Dst:             Stream_SetPosition
    - functionName:    redirection_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 934
      functionLinenumberEnd: 952
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          70
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_certificate_free
        - redirection_free_array
        - redirection_free_data
        - redirection_free_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:937,3'
          Dst:             redirection_free_data
        - Src:             'libfreerdp/core/redirection.c:938,3'
          Dst:             redirection_free_string
        - Src:             'libfreerdp/core/redirection.c:939,3'
          Dst:             redirection_free_string
        - Src:             'libfreerdp/core/redirection.c:940,3'
          Dst:             redirection_free_string
        - Src:             'libfreerdp/core/redirection.c:941,3'
          Dst:             redirection_free_string
        - Src:             'libfreerdp/core/redirection.c:942,3'
          Dst:             redirection_free_string
        - Src:             'libfreerdp/core/redirection.c:943,3'
          Dst:             redirection_free_data
        - Src:             'libfreerdp/core/redirection.c:944,3'
          Dst:             redirection_free_data
        - Src:             'libfreerdp/core/redirection.c:945,3'
          Dst:             redirection_free_data
        - Src:             'libfreerdp/core/redirection.c:946,3'
          Dst:             freerdp_certificate_free
        - Src:             'libfreerdp/core/redirection.c:947,3'
          Dst:             redirection_free_array
    - functionName:    redirection_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 923
      functionLinenumberEnd: 930
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:924,49'
          Dst:             calloc
    - functionName:    rdp_recv_server_redirection_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         115
      ICount:          701
      EdgeCount:       156
      CyclomaticComplexity: 43
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
        - Stream_Seek
        - WLog_Print_dbg_tag
        - _wcsnlen
        - calloc
        - rdp_redirection_flags_to_string
        - rdp_redirection_read_data
        - rdp_redirection_read_target_cert_stream
        - rdp_redirection_read_unicode_string
        - rdp_security_flag_string
        - redirection_free_array
        - stream_read_u16_le
        - stream_read_u32_le
        - utils_is_valid_ip
        - winpr_str_has_newlines
        - winpr_str_is_valid_url
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:671,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/redirection.c:674,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/redirection.c:679,3'
          Dst:             rdp_security_flag_string
        - Src:             'libfreerdp/core/redirection.c:679,3'
          Dst:             rdp_security_flag_string
        - Src:             'libfreerdp/core/redirection.c:679,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:684,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/redirection.c:685,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/redirection.c:686,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/redirection.c:687,2'
          Dst:             rdp_redirection_flags_to_string
        - Src:             'libfreerdp/core/redirection.c:687,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:708,8'
          Dst:             rdp_redirection_read_unicode_string
        - Src:             'libfreerdp/core/redirection.c:710,8'
          Dst:             utils_is_valid_ip
        - Src:             'libfreerdp/core/redirection.c:722,8'
          Dst:             rdp_redirection_read_data
        - Src:             'libfreerdp/core/redirection.c:729,8'
          Dst:             rdp_redirection_read_unicode_string
        - Src:             'libfreerdp/core/redirection.c:731,7'
          Dst:             winpr_str_has_newlines
        - Src:             'libfreerdp/core/redirection.c:733,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:738,8'
          Dst:             rdp_redirection_read_unicode_string
        - Src:             'libfreerdp/core/redirection.c:740,7'
          Dst:             winpr_str_has_newlines
        - Src:             'libfreerdp/core/redirection.c:742,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:768,8'
          Dst:             rdp_redirection_read_data
        - Src:             'libfreerdp/core/redirection.c:781,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:787,8'
          Dst:             _wcsnlen
        - Src:             'libfreerdp/core/redirection.c:789,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:797,8'
          Dst:             rdp_redirection_read_unicode_string
        - Src:             'libfreerdp/core/redirection.c:799,8'
          Dst:             winpr_str_is_valid_url
        - Src:             'libfreerdp/core/redirection.c:801,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:806,8'
          Dst:             rdp_redirection_read_unicode_string
        - Src:             'libfreerdp/core/redirection.c:808,8'
          Dst:             winpr_str_is_valid_url
        - Src:             'libfreerdp/core/redirection.c:810,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:815,8'
          Dst:             rdp_redirection_read_data
        - Src:             'libfreerdp/core/redirection.c:822,8'
          Dst:             rdp_redirection_read_data
        - Src:             'libfreerdp/core/redirection.c:829,8'
          Dst:             rdp_redirection_read_target_cert_stream
        - Src:             'libfreerdp/core/redirection.c:838,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/redirection.c:841,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/redirection.c:842,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/redirection.c:848,15'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/redirection.c:850,4'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/redirection.c:850,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:857,3'
          Dst:             redirection_free_array
        - Src:             'libfreerdp/core/redirection.c:862,16'
          Dst:             calloc
        - Src:             'libfreerdp/core/redirection.c:866,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:873,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:877,9'
          Dst:             rdp_redirection_read_unicode_string
        - Src:             'libfreerdp/core/redirection.c:879,9'
          Dst:             utils_is_valid_ip
        - Src:             'libfreerdp/core/redirection.c:881,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:886,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/redirection.c:889,3'
          Dst:             Stream_Seek
    - functionName:    rdp_recv_enhanced_security_redirection_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 899
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          85
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_SafeSeekEx
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_recv_server_redirection_pdu
        - state_run_failed
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:902,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/redirection.c:905,11'
          Dst:             rdp_recv_server_redirection_pdu
        - Src:             'libfreerdp/core/redirection.c:907,6'
          Dst:             state_run_failed
        - Src:             'libfreerdp/core/redirection.c:909,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/redirection.c:909,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/redirection.c:913,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/redirection.c:916,3'
          Dst:             Stream_Seek
    - functionName:    rdp_redirection_apply_settings
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 642
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         110
      ICount:          592
      EdgeCount:       146
      CyclomaticComplexity: 38
      functionsReached:
        - ConvertWCharNToUtf8Alloc
        - WLog_Print_dbg_tag
        - freerdp_settings_get_pointer
        - freerdp_settings_get_uint32
        - freerdp_settings_set_pointer_len
        - freerdp_settings_set_string
        - freerdp_target_net_addresses_copy
        - memcmp
        - rdp_reset_runtime_settings
        - rdp_set_target_certificate
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:485,7'
          Dst:             rdp_reset_runtime_settings
        - Src:             'libfreerdp/core/redirection.c:489,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/redirection.c:499,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/redirection.c:506,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/redirection.c:513,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/redirection.c:520,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/redirection.c:542,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/redirection.c:549,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/redirection.c:556,8'
          Dst:             freerdp_target_net_addresses_copy
        - Src:             'libfreerdp/core/redirection.c:564,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/redirection.c:568,24'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/redirection.c:569,20'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/core/redirection.c:576,8'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'libfreerdp/core/redirection.c:582,13'
          Dst:             memcmp
        - Src:             'libfreerdp/core/redirection.c:587,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/redirection.c:607,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/redirection.c:618,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/redirection.c:629,8'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/redirection.c:637,8'
          Dst:             rdp_set_target_certificate
    - functionName:    rdp_set_target_certificate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/redirection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          83
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - freerdp_certificate_clone
        - freerdp_certificate_get_pem
        - freerdp_settings_set_pointer
        - freerdp_settings_set_string_len
        - freerdp_settings_set_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/redirection.c:461,25'
          Dst:             freerdp_certificate_clone
        - Src:             'libfreerdp/core/redirection.c:462,7'
          Dst:             freerdp_settings_set_pointer
        - Src:             'libfreerdp/core/redirection.c:467,14'
          Dst:             freerdp_certificate_get_pem
        - Src:             'libfreerdp/core/redirection.c:471,7'
          Dst:             freerdp_settings_set_string_len
        - Src:             'libfreerdp/core/redirection.c:473,11'
          Dst:             freerdp_settings_set_uint32
    - functionName:    print_first_line_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3015
      functionLinenumberEnd: 3032
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:3016,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:3020,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:3022,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:3024,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    log_build_warn_cipher
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3048
      functionLinenumberEnd: 3084
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          137
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - print_first_line_int
        - winpr_Cipher_Free
        - winpr_Cipher_NewEx
        - winpr_RC4_Free
        - winpr_RC4_New
        - winpr_RC4_New_Allow_FIPS
        - winpr_cipher_type_to_string
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:3060,10'
          Dst:             winpr_RC4_New_Allow_FIPS
        - Src:             'libfreerdp/core/rdp.c:3062,10'
          Dst:             winpr_RC4_New
        - Src:             'libfreerdp/core/rdp.c:3064,3'
          Dst:             winpr_RC4_Free
        - Src:             'libfreerdp/core/rdp.c:3069,7'
          Dst:             winpr_Cipher_NewEx
        - Src:             'libfreerdp/core/rdp.c:3071,7'
          Dst:             winpr_Cipher_NewEx
        - Src:             'libfreerdp/core/rdp.c:3075,3'
          Dst:             winpr_Cipher_Free
        - Src:             'libfreerdp/core/rdp.c:3076,3'
          Dst:             winpr_Cipher_Free
        - Src:             'libfreerdp/core/rdp.c:3081,3'
          Dst:             print_first_line_int
        - Src:             'libfreerdp/core/rdp.c:3082,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:3082,3'
          Dst:             winpr_cipher_type_to_string
        - Src:             'libfreerdp/core/rdp.c:3082,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    log_build_warn_hmac
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3088
      functionLinenumberEnd: 3106
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          87
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - print_first_line_int
        - winpr_HMAC_Free
        - winpr_HMAC_Init
        - winpr_HMAC_New
        - winpr_md_type_to_string
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:3090,25'
          Dst:             winpr_HMAC_New
        - Src:             'libfreerdp/core/rdp.c:3097,15'
          Dst:             winpr_HMAC_Init
        - Src:             'libfreerdp/core/rdp.c:3099,2'
          Dst:             winpr_HMAC_Free
        - Src:             'libfreerdp/core/rdp.c:3103,3'
          Dst:             print_first_line_int
        - Src:             'libfreerdp/core/rdp.c:3104,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:3104,3'
          Dst:             winpr_md_type_to_string
        - Src:             'libfreerdp/core/rdp.c:3104,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    print_last_line
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3035
      functionLinenumberEnd: 3044
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          67
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:3036,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:3039,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:3040,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    log_build_warn_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3110
      functionLinenumberEnd: 3127
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          99
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - print_first_line_int
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_Init_Allow_FIPS
        - winpr_Digest_New
        - winpr_md_type_to_string
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:3112,29'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/rdp.c:3116,18'
          Dst:             winpr_Digest_Init_Allow_FIPS
        - Src:             'libfreerdp/core/rdp.c:3118,18'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/rdp.c:3120,2'
          Dst:             winpr_Digest_Free
        - Src:             'libfreerdp/core/rdp.c:3124,3'
          Dst:             print_first_line_int
        - Src:             'libfreerdp/core/rdp.c:3125,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:3125,3'
          Dst:             winpr_md_type_to_string
        - Src:             'libfreerdp/core/rdp.c:3125,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    option_equals
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2847
      functionLinenumberEnd: 2848
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _stricmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2848,9'
          Dst:             _stricmp
    - functionName:    parse_on_off_option
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2852
      functionLinenumberEnd: 2872
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          108
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - option_equals
        - strchr
        - strtol
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2853,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2854,20'
          Dst:             strchr
        - Src:             'libfreerdp/core/rdp.c:2857,6'
          Dst:             option_equals
        - Src:             'libfreerdp/core/rdp.c:2859,6'
          Dst:             option_equals
        - Src:             'libfreerdp/core/rdp.c:2861,6'
          Dst:             option_equals
        - Src:             'libfreerdp/core/rdp.c:2863,6'
          Dst:             option_equals
        - Src:             'libfreerdp/core/rdp.c:2866,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/rdp.c:2867,13'
          Dst:             strtol
        - Src:             'libfreerdp/core/rdp.c:2868,6'
          Dst:             __errno_location
    - functionName:    strtol
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    starts_with
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2837
      functionLinenumberEnd: 2844
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strlen
        - strncmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2838,21'
          Dst:             strlen
        - Src:             'libfreerdp/core/rdp.c:2839,6'
          Dst:             strncmp
    - 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_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:    rdp_recv_fastpath_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1826
      functionLinenumberEnd: 1854
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          169
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - fastpath_decrypt
        - fastpath_read_header_rdp
        - fastpath_recv_updates
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1829,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1832,7'
          Dst:             fastpath_read_header_rdp
        - Src:             'libfreerdp/core/rdp.c:1834,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1834,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1838,25'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:1840,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1840,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1850,7'
          Dst:             fastpath_decrypt
        - Src:             'libfreerdp/core/rdp.c:1853,9'
          Dst:             fastpath_recv_updates
    - functionName:    rdp_recv_tpkt_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1685
      functionLinenumberEnd: 1823
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         113
      ICount:          559
      EdgeCount:       136
      CyclomaticComplexity: 25
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Pointer
        - Stream_Rewind
        - Stream_SafeSeekEx
        - Stream_StaticInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_channel_process
        - freerdp_shall_disconnect_context
        - pdu_type_to_str
        - rdp_decrypt
        - rdp_handle_message_channel
        - rdp_read_header
        - rdp_read_security_header
        - rdp_read_share_control_header
        - rdp_recv_data_pdu
        - rdp_recv_deactivate_all
        - rdp_recv_enhanced_security_redirection_packet
        - state_run_failed
        - tpkt_ensure_stream_consumed_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/rdp.c:1761,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1693,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1694,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1695,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1698,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1700,7'
          Dst:             rdp_read_header
        - Src:             'libfreerdp/core/rdp.c:1703,6'
          Dst:             freerdp_shall_disconnect_context
        - Src:             'libfreerdp/core/rdp.c:1714,10'
          Dst:             rdp_handle_message_channel
        - Src:             'libfreerdp/core/rdp.c:1719,8'
          Dst:             rdp_read_security_header
        - Src:             'libfreerdp/core/rdp.c:1724,9'
          Dst:             rdp_decrypt
        - Src:             'libfreerdp/core/rdp.c:1734,4'
          Dst:             Stream_Rewind
        - Src:             'libfreerdp/core/rdp.c:1737,9'
          Dst:             rdp_recv_enhanced_security_redirection_packet
        - Src:             'libfreerdp/core/rdp.c:1744,10'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdp.c:1751,9'
          Dst:             rdp_read_share_control_header
        - Src:             'libfreerdp/core/rdp.c:1754,40'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/rdp.c:1754,10'
          Dst:             Stream_StaticInit
        - Src:             'libfreerdp/core/rdp.c:1755,9'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/rdp.c:1764,11'
          Dst:             rdp_recv_data_pdu
        - Src:             'libfreerdp/core/rdp.c:1765,10'
          Dst:             state_run_failed
        - Src:             'libfreerdp/core/rdp.c:1770,11'
          Dst:             rdp_recv_deactivate_all
        - Src:             'libfreerdp/core/rdp.c:1772,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1772,7'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1780,13'
          Dst:             rdp_recv_enhanced_security_redirection_packet
        - Src:             'libfreerdp/core/rdp.c:1785,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1785,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1787,11'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/rdp.c:1794,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1794,6'
          Dst:             pdu_type_to_str
        - Src:             'libfreerdp/core/rdp.c:1794,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1800,11'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdp.c:1804,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1804,5'
          Dst:             pdu_type_to_str
        - Src:             'libfreerdp/core/rdp.c:1804,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1815,8'
          Dst:             freerdp_channel_process
        - Src:             'libfreerdp/core/rdp.c:1820,7'
          Dst:             tpkt_ensure_stream_consumed_
    - functionName:    rdp_read_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 551
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         114
      ICount:          533
      EdgeCount:       140
      CyclomaticComplexity: 28
      functionsReached:
        - PubSub_OnTerminate
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT8
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - mcs_domain_pdu_string
        - mcs_recv_disconnect_provider_ultimatum
        - per_read_choice
        - per_read_integer16
        - per_read_length
        - rdp_set_error_info
        - tpdu_read_header
        - tpdu_type_to_string
        - tpkt_read_header
        - utils_abort_connect
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:557,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:558,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:559,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:564,7'
          Dst:             tpkt_read_header
        - Src:             'libfreerdp/core/rdp.c:567,7'
          Dst:             tpdu_read_header
        - Src:             'libfreerdp/core/rdp.c:574,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:574,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:575,4'
          Dst:             utils_abort_connect
        - Src:             'libfreerdp/core/rdp.c:579,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:579,3'
          Dst:             tpdu_type_to_string
        - Src:             'libfreerdp/core/rdp.c:579,3'
          Dst:             tpdu_type_to_string
        - Src:             'libfreerdp/core/rdp.c:579,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:585,7'
          Dst:             per_read_choice
        - Src:             'libfreerdp/core/rdp.c:594,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:594,4'
          Dst:             mcs_domain_pdu_string
        - Src:             'libfreerdp/core/rdp.c:594,4'
          Dst:             mcs_domain_pdu_string
        - Src:             'libfreerdp/core/rdp.c:594,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:604,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:604,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:609,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:617,8'
          Dst:             mcs_recv_disconnect_provider_ultimatum
        - Src:             'libfreerdp/core/rdp.c:621,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:637,9'
          Dst:             rdp_set_error_info
        - Src:             'libfreerdp/core/rdp.c:641,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:641,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:642,3'
          Dst:             utils_abort_connect
        - Src:             'libfreerdp/core/rdp.c:645,10'
          Dst:             PubSub_OnTerminate
        - Src:             'libfreerdp/core/rdp.c:648,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:651,7'
          Dst:             per_read_integer16
        - Src:             'libfreerdp/core/rdp.c:654,7'
          Dst:             per_read_integer16
        - Src:             'libfreerdp/core/rdp.c:657,31'
          Dst:             Stream_Get_UINT8
        - Src:             'libfreerdp/core/rdp.c:658,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:658,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:660,7'
          Dst:             per_read_length
        - Src:             'libfreerdp/core/rdp.c:663,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
    - functionName:    rdp_read_security_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          215
      EdgeCount:       64
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT16
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_security_flag_string
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:192,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:193,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:194,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:199,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:199,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:203,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:206,11'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdp.c:207,27'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdp.c:210,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:210,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:215,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:215,2'
          Dst:             rdp_security_flag_string
        - Src:             'libfreerdp/core/rdp.c:215,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdp_decrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1526
      functionLinenumberEnd: 1632
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         109
      ICount:          478
      EdgeCount:       131
      CyclomaticComplexity: 24
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_ConstPointer
        - Stream_Length
        - Stream_Pointer
        - Stream_Read
        - Stream_Seek
        - Stream_SetLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - memcmp
        - security_decrypt
        - security_fips_check_signature
        - security_fips_decrypt
        - security_lock
        - security_mac_signature
        - security_salted_mac_signature
        - security_unlock
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1532,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1533,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1534,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1535,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1537,2'
          Dst:             security_lock
        - Src:             'libfreerdp/core/rdp.c:1548,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:1552,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/rdp.c:1554,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1554,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1558,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/rdp.c:1560,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1560,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1564,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/rdp.c:1565,21'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/rdp.c:1566,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/rdp.c:1572,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1572,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1576,30'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/rdp.c:1576,8'
          Dst:             security_fips_decrypt
        - Src:             'libfreerdp/core/rdp.c:1579,38'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/rdp.c:1579,8'
          Dst:             security_fips_check_signature
        - Src:             'libfreerdp/core/rdp.c:1582,28'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/rdp.c:1582,8'
          Dst:             Stream_SetLength
        - Src:             'libfreerdp/core/rdp.c:1589,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:1592,3'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/rdp.c:1597,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1597,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1601,25'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/rdp.c:1601,8'
          Dst:             security_decrypt
        - Src:             'libfreerdp/core/rdp.c:1605,48'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/rdp.c:1605,13'
          Dst:             security_salted_mac_signature
        - Src:             'libfreerdp/core/rdp.c:1608,41'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/rdp.c:1608,13'
          Dst:             security_mac_signature
        - Src:             'libfreerdp/core/rdp.c:1614,7'
          Dst:             memcmp
        - Src:             'libfreerdp/core/rdp.c:1616,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1616,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1631,2'
          Dst:             security_unlock
    - functionName:    rdp_read_share_control_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         94
      ICount:          391
      EdgeCount:       110
      CyclomaticComplexity: 18
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - pdu_type_to_str
        - rdp_read_flow_control_pdu
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:255,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:256,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:257,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:258,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:260,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:264,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/rdp.c:270,8'
          Dst:             rdp_read_flow_control_pdu
        - Src:             'libfreerdp/core/rdp.c:279,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:279,3'
          Dst:             pdu_type_to_str
        - Src:             'libfreerdp/core/rdp.c:279,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:288,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:288,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:296,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:299,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/rdp.c:305,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:308,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/rdp.c:315,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:315,2'
          Dst:             pdu_type_to_str
        - Src:             'libfreerdp/core/rdp.c:315,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:319,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:322,9'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1292,3'
          Dst:             winpr_int_assert
    - functionName:    rdp_recv_data_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1168
      functionLinenumberEnd: 1398
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         222
      ICount:          894
      EdgeCount:       264
      CyclomaticComplexity: 44
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_ConstPointer
        - Stream_Release
        - Stream_ResetPosition
        - Stream_SealLength
        - Stream_Seek
        - Stream_Write
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - bulk_decompress
        - data_pdu_type_to_string
        - rdp_read_share_data_header
        - rdp_recv_font_map_pdu
        - rdp_recv_monitor_layout_pdu
        - rdp_recv_save_session_info
        - rdp_recv_server_auto_reconnect_status_pdu
        - rdp_recv_server_control_pdu
        - rdp_recv_server_set_keyboard_ime_status_pdu
        - rdp_recv_server_set_keyboard_indicators_pdu
        - rdp_recv_server_shutdown_denied_pdu
        - rdp_recv_server_status_info_pdu
        - rdp_recv_server_synchronize_pdu
        - rdp_recv_set_error_info_data_pdu
        - transport_take_from_pool
        - update_recv
        - update_recv_play_sound
        - update_recv_pointer
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/rdp.c:1235,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1176,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1177,7'
          Dst:             rdp_read_share_data_header
        - Src:             'libfreerdp/core/rdp.c:1180,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1180,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1190,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1190,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1200,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:1202,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1202,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1208,34'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/rdp.c:1208,7'
          Dst:             bulk_decompress
        - Src:             'libfreerdp/core/rdp.c:1211,9'
          Dst:             transport_take_from_pool
        - Src:             'libfreerdp/core/rdp.c:1214,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1214,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1218,4'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/rdp.c:1219,4'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/rdp.c:1220,4'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/rdp.c:1221,4'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/rdp.c:1225,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1225,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1229,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/rdp.c:1232,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1232,2'
          Dst:             data_pdu_type_to_string
        - Src:             'libfreerdp/core/rdp.c:1232,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1238,9'
          Dst:             update_recv
        - Src:             'libfreerdp/core/rdp.c:1240,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1240,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1247,9'
          Dst:             rdp_recv_server_control_pdu
        - Src:             'libfreerdp/core/rdp.c:1249,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1249,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1257,9'
          Dst:             update_recv_pointer
        - Src:             'libfreerdp/core/rdp.c:1259,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1259,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1267,9'
          Dst:             rdp_recv_server_synchronize_pdu
        - Src:             'libfreerdp/core/rdp.c:1269,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1269,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1277,9'
          Dst:             update_recv_play_sound
        - Src:             'libfreerdp/core/rdp.c:1279,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1279,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1287,9'
          Dst:             rdp_recv_server_shutdown_denied_pdu
        - Src:             'libfreerdp/core/rdp.c:1289,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1289,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1298,9'
          Dst:             rdp_recv_save_session_info
        - Src:             'libfreerdp/core/rdp.c:1300,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1300,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1308,9'
          Dst:             rdp_recv_font_map_pdu
        - Src:             'libfreerdp/core/rdp.c:1310,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1310,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1318,9'
          Dst:             rdp_recv_server_set_keyboard_indicators_pdu
        - Src:             'libfreerdp/core/rdp.c:1320,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1320,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1329,9'
          Dst:             rdp_recv_server_set_keyboard_ime_status_pdu
        - Src:             'libfreerdp/core/rdp.c:1331,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1331,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1340,9'
          Dst:             rdp_recv_set_error_info_data_pdu
        - Src:             'libfreerdp/core/rdp.c:1342,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1342,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1351,9'
          Dst:             rdp_recv_server_auto_reconnect_status_pdu
        - Src:             'libfreerdp/core/rdp.c:1353,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1353,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1362,9'
          Dst:             rdp_recv_server_status_info_pdu
        - Src:             'libfreerdp/core/rdp.c:1364,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1364,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1372,9'
          Dst:             rdp_recv_monitor_layout_pdu
        - Src:             'libfreerdp/core/rdp.c:1374,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1374,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1382,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1382,4'
          Dst:             data_pdu_type_to_string
        - Src:             'libfreerdp/core/rdp.c:1382,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1389,3'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/rdp.c:1395,3'
          Dst:             Stream_Release
    - functionName:    pdu_type_to_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1636
      functionLinenumberEnd: 1675
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          84
      EdgeCount:       25
      CyclomaticComplexity: 14
      functionsReached:
        - snprintf
        - winpr_str_append
      functionUses:    7
      BranchProfiles:
        - Branch String:   'libfreerdp/core/rdp.c:1638,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1669,2'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:1672,9'
          Dst:             snprintf
        - Src:             'libfreerdp/core/rdp.c:1673,3'
          Dst:             winpr_str_append
    - functionName:    rdp_read_share_data_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          103
      EdgeCount:       29
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT8
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:348,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:351,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:355,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/rdp.c:356,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/rdp.c:357,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/rdp.c:358,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/rdp.c:359,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/rdp.c:360,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/rdp.c:361,2'
          Dst:             stream_read_u16_le
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_ResetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1358,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:    1
      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_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:    13
      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:    data_pdu_type_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rdp_recv_server_shutdown_denied_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1023
      functionLinenumberEnd: 1024
      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:    rdp_recv_server_set_keyboard_indicators_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1028
      functionLinenumberEnd: 1049
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          178
      EdgeCount:       51
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT16
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1029,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1030,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1033,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1034,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1036,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:1039,26'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdp.c:1042,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1042,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1047,26'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdp.c:1048,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rdp_recv_server_set_keyboard_ime_status_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1052
      functionLinenumberEnd: 1071
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          149
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT16
        - Stream_Get_UINT32
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1056,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:1059,26'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdp.c:1062,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1062,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1067,28'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/rdp.c:1068,31'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/rdp.c:1069,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rdp_recv_set_error_info_data_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1074
      functionLinenumberEnd: 1082
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - rdp_set_error_info
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1077,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:1080,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/rdp.c:1081,9'
          Dst:             rdp_set_error_info
    - functionName:    rdp_recv_server_auto_reconnect_status_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1085
      functionLinenumberEnd: 1094
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          66
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1088,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:1091,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/rdp.c:1092,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1092,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdp_recv_server_status_info_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1097
      functionLinenumberEnd: 1109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1100,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:1103,2'
          Dst:             stream_read_u32_le
    - functionName:    rdp_recv_monitor_layout_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1132
      functionLinenumberEnd: 1165
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          190
      EdgeCount:       43
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT32
        - WLog_Print_dbg_tag
        - calloc
        - log_monitor_configuration
        - rdp_set_monitor_layout_pdu_state_
        - stream_read_i32_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1135,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1136,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:1139,30'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/rdp.c:1141,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:1144,47'
          Dst:             calloc
        - Src:             'libfreerdp/core/rdp.c:1152,3'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/rdp.c:1153,3'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/rdp.c:1154,3'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/rdp.c:1155,3'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/rdp.c:1156,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/rdp.c:1159,2'
          Dst:             log_monitor_configuration
        - Src:             'libfreerdp/core/rdp.c:1160,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/rdp.c:1164,9'
          Dst:             rdp_set_monitor_layout_pdu_state_
    - functionName:    Stream_Get_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u32_le
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:413,10'
          Dst:             stream_read_u32_le
    - 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_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:    6
      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:    log_monitor_configuration
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1120
      functionLinenumberEnd: 1129
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          87
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - log_monitor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1122,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1122,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1126,3'
          Dst:             log_monitor
        - Src:             'libfreerdp/core/rdp.c:1128,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1128,2'
          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:    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:    rdp_set_monitor_layout_pdu_state_
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          86
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:151,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:155,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:157,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    log_monitor
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1112
      functionLinenumberEnd: 1117
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          71
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1113,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1115,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1115,2'
          Dst:             WLog_PrintTextMessage
    - 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_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:    rdp_set_error_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 514
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          142
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - PubSub_OnErrorInfo
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_set_last_error_ex
        - rdp_print_errinfo
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:483,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:490,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:492,3'
          Dst:             rdp_print_errinfo
        - Src:             'libfreerdp/core/rdp.c:496,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/rdp.c:503,10'
          Dst:             PubSub_OnErrorInfo
        - Src:             'libfreerdp/core/rdp.c:507,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:507,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:511,3'
          Dst:             freerdp_set_last_error_ex
    - functionName:    PubSub_OnErrorInfo
      functionSourceFile: '/src/FreeRDP/include/freerdp/event.h'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - PubSub_OnEvent
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/event.h:69,2'
          Dst:             winpr_int_assert
        - Src:             'include/freerdp/event.h:69,2'
          Dst:             PubSub_OnEvent
    - functionName:    Stream_Get_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u16_le
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:369,10'
          Dst:             stream_read_u16_le
    - 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:    8
      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:    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_Seek_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1199
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1200,3'
          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:    6
      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_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:    rdp_read_flow_control_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1488
      functionLinenumberEnd: 1512
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          110
      EdgeCount:       35
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT8
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1498,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1499,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1500,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1501,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1503,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdp.c:1505,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/rdp.c:1507,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/rdp.c:1508,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/rdp.c:1509,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/rdp.c:1510,2'
          Dst:             stream_read_u16_le
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:1325,3'
          Dst:             winpr_int_assert
    - 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:    1
      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:    rdp_security_flag_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2759
      functionLinenumberEnd: 2798
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          283
      EdgeCount:       67
      CyclomaticComplexity: 18
      functionsReached:
        - snprintf
        - winpr_str_append
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2761,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2763,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2765,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2767,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2769,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2771,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2773,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2775,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2777,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2779,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2781,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2783,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2785,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2787,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2789,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2791,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2795,9'
          Dst:             snprintf
        - Src:             'libfreerdp/core/rdp.c:2796,3'
          Dst:             winpr_str_append
    - functionName:    PubSub_OnTerminate
      functionSourceFile: '/src/FreeRDP/include/freerdp/event.h'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - PubSub_OnEvent
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/event.h:82,2'
          Dst:             winpr_int_assert
        - Src:             'include/freerdp/event.h:82,2'
          Dst:             PubSub_OnEvent
    - functionName:    Stream_Get_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:347,10'
          Dst:             stream_read_u8
    - functionName:    rdp_check_monitor_layout_pdu_state_
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          78
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:130,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:134,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:136,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdp_recv_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1857
      functionLinenumberEnd: 1865
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - rdp_recv_fastpath_pdu
        - rdp_recv_tpkt_pdu
        - tpkt_verify_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1858,17'
          Dst:             tpkt_verify_header
        - Src:             'libfreerdp/core/rdp.c:1860,10'
          Dst:             rdp_recv_tpkt_pdu
        - Src:             'libfreerdp/core/rdp.c:1862,10'
          Dst:             rdp_recv_fastpath_pdu
    - functionName:    rdp_handle_sc_flags
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1869
      functionLinenumberEnd: 1895
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          118
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_client_transition_to_state
        - rdp_finalize_flags_to_str
        - rdp_get_state_string
        - rdp_recv_pdu
        - state_run_success
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1872,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1873,23'
          Dst:             rdp_recv_pdu
        - Src:             'libfreerdp/core/rdp.c:1874,6'
          Dst:             state_run_success
        - Src:             'libfreerdp/core/rdp.c:1879,9'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/rdp.c:1888,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1888,4'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/rdp.c:1888,4'
          Dst:             rdp_finalize_flags_to_str
        - Src:             'libfreerdp/core/rdp.c:1888,4'
          Dst:             rdp_finalize_flags_to_str
        - Src:             'libfreerdp/core/rdp.c:1888,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdp_finalize_flags_to_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2656
      functionLinenumberEnd: 2691
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          220
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - snprintf
        - winpr_str_append
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2666,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2668,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2670,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2672,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2674,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2676,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2678,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2680,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2682,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2684,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2686,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2688,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2689,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/rdp.c:2690,2'
          Dst:             winpr_str_append
    - functionName:    rdp_client_exchange_monitor_layout
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1899
      functionLinenumberEnd: 1927
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          148
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - rdp_check_monitor_layout_pdu_state_
        - rdp_client_connect_finalize
        - rdp_finalize_is_flag_set
        - rdp_recv_pdu
        - state_run_success
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1900,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1902,7'
          Dst:             rdp_check_monitor_layout_pdu_state_
        - Src:             'libfreerdp/core/rdp.c:1909,23'
          Dst:             rdp_recv_pdu
        - Src:             'libfreerdp/core/rdp.c:1914,6'
          Dst:             state_run_success
        - Src:             'libfreerdp/core/rdp.c:1918,9'
          Dst:             rdp_finalize_is_flag_set
        - Src:             'libfreerdp/core/rdp.c:1922,12'
          Dst:             rdp_client_connect_finalize
        - Src:             'libfreerdp/core/rdp.c:1923,7'
          Dst:             state_run_success
    - functionName:    rdp_finalize_is_flag_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2719
      functionLinenumberEnd: 2721
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2720,2'
          Dst:             winpr_int_assert
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - 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:    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:    rdp_get_event_handles
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3215
      functionLinenumberEnd: 3227
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          73
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_timer_get_event
        - transport_get_event_handles
        - utils_get_abort_event
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:3216,18'
          Dst:             transport_get_event_handles
        - Src:             'libfreerdp/core/rdp.c:3224,22'
          Dst:             utils_get_abort_event
        - Src:             'libfreerdp/core/rdp.c:3225,22'
          Dst:             freerdp_timer_get_event
    - functionName:    log_build_warn_ssl
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3130
      functionLinenumberEnd: 3193
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          155
      EdgeCount:       37
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - log_build_warn_cipher
        - log_build_warn_hash
        - log_build_warn_hmac
        - print_last_line
        - winpr_FIPSMode
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:3131,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:3133,20'
          Dst:             winpr_FIPSMode
        - Src:             'libfreerdp/core/rdp.c:3137,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:3137,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:3146,3'
          Dst:             log_build_warn_hash
        - Src:             'libfreerdp/core/rdp.c:3147,3'
          Dst:             log_build_warn_hash
        - Src:             'libfreerdp/core/rdp.c:3152,2'
          Dst:             log_build_warn_hash
        - Src:             'libfreerdp/core/rdp.c:3154,2'
          Dst:             log_build_warn_hash
        - Src:             'libfreerdp/core/rdp.c:3158,2'
          Dst:             log_build_warn_hash
        - Src:             'libfreerdp/core/rdp.c:3161,2'
          Dst:             print_last_line
        - Src:             'libfreerdp/core/rdp.c:3166,3'
          Dst:             log_build_warn_hmac
        - Src:             'libfreerdp/core/rdp.c:3168,3'
          Dst:             log_build_warn_hmac
        - Src:             'libfreerdp/core/rdp.c:3169,3'
          Dst:             print_last_line
        - Src:             'libfreerdp/core/rdp.c:3175,3'
          Dst:             log_build_warn_cipher
        - Src:             'libfreerdp/core/rdp.c:3180,2'
          Dst:             log_build_warn_cipher
        - Src:             'libfreerdp/core/rdp.c:3183,3'
          Dst:             log_build_warn_cipher
        - Src:             'libfreerdp/core/rdp.c:3185,2'
          Dst:             log_build_warn_cipher
        - Src:             'libfreerdp/core/rdp.c:3188,2'
          Dst:             log_build_warn_cipher
        - Src:             'libfreerdp/core/rdp.c:3190,2'
          Dst:             log_build_warn_cipher
        - Src:             'libfreerdp/core/rdp.c:3192,2'
          Dst:             print_last_line
    - functionName:    option_is_runtime_checks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2877
      functionLinenumberEnd: 2888
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - parse_on_off_option
        - starts_with
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2882,7'
          Dst:             starts_with
        - Src:             'libfreerdp/core/rdp.c:2884,11'
          Dst:             parse_on_off_option
    - functionName:    option_is_debug
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2910
      functionLinenumberEnd: 2961
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          101
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - parse_on_off_option
        - starts_with
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2911,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2950,7'
          Dst:             starts_with
        - Src:             'libfreerdp/core/rdp.c:2951,11'
          Dst:             parse_on_off_option
        - Src:             'libfreerdp/core/rdp.c:2954,6'
          Dst:             starts_with
        - Src:             'libfreerdp/core/rdp.c:2956,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2956,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2957,10'
          Dst:             parse_on_off_option
    - functionName:    option_is_experimental
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2891
      functionLinenumberEnd: 2907
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - parse_on_off_option
        - starts_with
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2901,7'
          Dst:             starts_with
        - Src:             'libfreerdp/core/rdp.c:2903,11'
          Dst:             parse_on_off_option
    - functionName:    log_build_warn
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2965
      functionLinenumberEnd: 3009
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         71
      ICount:          277
      EdgeCount:       84
      CyclomaticComplexity: 15
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - _strdup
        - calloc
        - strlen
        - strtok_s
        - winpr_int_assert
        - winpr_str_append
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2966,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2971,15'
          Dst:             calloc
        - Src:             'libfreerdp/core/rdp.c:2972,17'
          Dst:             _strdup
        - Src:             'libfreerdp/core/rdp.c:2978,15'
          Dst:             strtok_s
        - Src:             'libfreerdp/core/rdp.c:2982,5'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/rdp.c:2984,10'
          Dst:             strtok_s
        - Src:             'libfreerdp/core/rdp.c:2991,7'
          Dst:             strlen
        - Src:             'libfreerdp/core/rdp.c:2993,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2993,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2994,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2994,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2997,16'
          Dst:             strtok_s
        - Src:             'libfreerdp/core/rdp.c:3000,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:3000,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:3001,11'
          Dst:             strtok_s
        - Src:             'libfreerdp/core/rdp.c:3003,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:3003,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:3004,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:3004,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:3005,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:3005,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdp_log_build_warnings
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3196
      functionLinenumberEnd: 3212
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          48
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - log_build_warn
        - log_build_warn_ssl
        - option_is_debug
        - option_is_experimental
        - option_is_runtime_checks
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:3199,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:3206,2'
          Dst:             log_build_warn
        - Src:             'libfreerdp/core/rdp.c:3206,2'
          Dst:             option_is_experimental
        - Src:             'libfreerdp/core/rdp.c:3207,2'
          Dst:             log_build_warn
        - Src:             'libfreerdp/core/rdp.c:3207,2'
          Dst:             option_is_debug
        - Src:             'libfreerdp/core/rdp.c:3209,2'
          Dst:             log_build_warn
        - Src:             'libfreerdp/core/rdp.c:3209,2'
          Dst:             option_is_runtime_checks
        - Src:             'libfreerdp/core/rdp.c:3211,2'
          Dst:             log_build_warn_ssl
    - functionName:    rdp_reset_runtime_settings
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2824
      functionLinenumberEnd: 2834
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          74
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_clone
        - freerdp_settings_free
        - rdp_reset_remote_settings
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2825,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2826,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2828,2'
          Dst:             freerdp_settings_free
        - Src:             'libfreerdp/core/rdp.c:2829,43'
          Dst:             freerdp_settings_clone
        - Src:             'libfreerdp/core/rdp.c:2833,9'
          Dst:             rdp_reset_remote_settings
    - functionName:    rdp_reset_remote_settings
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2802
      functionLinenumberEnd: 2810
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          59
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_free
        - freerdp_settings_get_bool
        - freerdp_settings_new
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2804,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2805,2'
          Dst:             freerdp_settings_free
        - Src:             'libfreerdp/core/rdp.c:2807,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/rdp.c:2809,24'
          Dst:             freerdp_settings_new
    - functionName:    rdp_reset_rc4_decrypt_keys
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2749
      functionLinenumberEnd: 2755
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_free_rc4_decrypt_keys
        - winpr_RC4_New
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2750,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2751,2'
          Dst:             rdp_free_rc4_decrypt_keys
        - Src:             'libfreerdp/core/rdp.c:2752,25'
          Dst:             winpr_RC4_New
    - functionName:    rdp_free_rc4_decrypt_keys
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2742
      functionLinenumberEnd: 2746
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_RC4_Free
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2743,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2744,2'
          Dst:             winpr_RC4_Free
    - functionName:    rdp_free_rc4_encrypt_keys
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2735
      functionLinenumberEnd: 2739
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_RC4_Free
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2736,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2737,2'
          Dst:             winpr_RC4_Free
    - functionName:    rdp_reset_rc4_encrypt_keys
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2725
      functionLinenumberEnd: 2731
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_free_rc4_encrypt_keys
        - winpr_RC4_New
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2726,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2727,2'
          Dst:             rdp_free_rc4_encrypt_keys
        - Src:             'libfreerdp/core/rdp.c:2728,25'
          Dst:             winpr_RC4_New
    - functionName:    rdp_finalize_set_flag
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2707
      functionLinenumberEnd: 2715
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          66
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_finalize_flags_to_str
        - rdp_get_state_string
        - winpr_int_assert
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2710,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2712,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2712,2'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/rdp.c:2712,2'
          Dst:             rdp_finalize_flags_to_str
        - Src:             'libfreerdp/core/rdp.c:2712,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdp_get_io_callback_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2650
      functionLinenumberEnd: 2652
      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:             'libfreerdp/core/rdp.c:2651,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_set_io_callback_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2643
      functionLinenumberEnd: 2646
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2644,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_set_io_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2626
      functionLinenumberEnd: 2640
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - transport_set_io_callbacks
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2637,10'
          Dst:             transport_set_io_callbacks
    - functionName:    rdp_get_io_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2619
      functionLinenumberEnd: 2623
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rdp_io_callback_set_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2612
      functionLinenumberEnd: 2616
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - transport_io_callback_set_event
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2615,9'
          Dst:             transport_io_callback_set_event
    - functionName:    rdp_finalize_reset_flags
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2695
      functionLinenumberEnd: 2703
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          74
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_get_state_string
        - rdp_set_monitor_layout_pdu_state_
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2696,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2697,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2697,2'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/rdp.c:2697,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2703,9'
          Dst:             rdp_set_monitor_layout_pdu_state_
    - functionName:    rdp_reset_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2508
      functionLinenumberEnd: 2534
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          92
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - aad_free
        - fastpath_free
        - license_free
        - mcs_free
        - nego_free
        - rdp_free_rc4_decrypt_keys
        - rdp_free_rc4_encrypt_keys
        - security_lock
        - security_unlock
        - transport_free
        - winpr_Cipher_Free
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2509,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2511,2'
          Dst:             security_lock
        - Src:             'libfreerdp/core/rdp.c:2512,2'
          Dst:             rdp_free_rc4_decrypt_keys
        - Src:             'libfreerdp/core/rdp.c:2513,2'
          Dst:             rdp_free_rc4_encrypt_keys
        - Src:             'libfreerdp/core/rdp.c:2515,2'
          Dst:             winpr_Cipher_Free
        - Src:             'libfreerdp/core/rdp.c:2516,2'
          Dst:             winpr_Cipher_Free
        - Src:             'libfreerdp/core/rdp.c:2519,2'
          Dst:             security_unlock
        - Src:             'libfreerdp/core/rdp.c:2521,2'
          Dst:             aad_free
        - Src:             'libfreerdp/core/rdp.c:2522,2'
          Dst:             mcs_free
        - Src:             'libfreerdp/core/rdp.c:2523,2'
          Dst:             nego_free
        - Src:             'libfreerdp/core/rdp.c:2524,2'
          Dst:             license_free
        - Src:             'libfreerdp/core/rdp.c:2525,2'
          Dst:             transport_free
        - Src:             'libfreerdp/core/rdp.c:2526,2'
          Dst:             fastpath_free
    - functionName:    rdp_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2537
      functionLinenumberEnd: 2572
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          134
      EdgeCount:       37
      CyclomaticComplexity: 8
      functionsReached:
        - bulk_reset
        - freerdp_settings_set_pointer_len
        - freerdp_settings_set_string
        - rdp_finalize_reset_flags
        - rdp_new_common
        - rdp_reset_free
        - transport_set_layer
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2540,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2543,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2545,2'
          Dst:             bulk_reset
        - Src:             'libfreerdp/core/rdp.c:2547,2'
          Dst:             rdp_reset_free
        - Src:             'libfreerdp/core/rdp.c:2549,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/rdp.c:2552,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/rdp.c:2555,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/rdp.c:2561,7'
          Dst:             rdp_new_common
        - Src:             'libfreerdp/core/rdp.c:2565,7'
          Dst:             transport_set_layer
        - Src:             'libfreerdp/core/rdp.c:2569,7'
          Dst:             rdp_finalize_reset_flags
    - functionName:    rdp_new_common
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2341
      functionLinenumberEnd: 2377
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          153
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - aad_new
        - fastpath_new
        - license_new
        - mcs_new
        - nego_new
        - transport_new
        - transport_set_io_callbacks
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2342,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2345,19'
          Dst:             transport_new
        - Src:             'libfreerdp/core/rdp.c:2351,8'
          Dst:             transport_set_io_callbacks
        - Src:             'libfreerdp/core/rdp.c:2355,13'
          Dst:             aad_new
        - Src:             'libfreerdp/core/rdp.c:2359,14'
          Dst:             nego_new
        - Src:             'libfreerdp/core/rdp.c:2363,13'
          Dst:             mcs_new
        - Src:             'libfreerdp/core/rdp.c:2367,17'
          Dst:             license_new
        - Src:             'libfreerdp/core/rdp.c:2371,18'
          Dst:             fastpath_new
    - functionName:    rdp_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2581
      functionLinenumberEnd: 2609
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          113
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - CloseHandle
        - DeleteCriticalSection
        - PubSub_Free
        - WINPR_JSON_Delete
        - WLog_Discard
        - aad_free
        - autodetect_free
        - bulk_free
        - freerdp_settings_free
        - freerdp_timer_free
        - heartbeat_free
        - input_free
        - multitransport_free
        - nla_free
        - rdp_reset_free
        - redirection_free
        - update_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2584,3'
          Dst:             freerdp_timer_free
        - Src:             'libfreerdp/core/rdp.c:2585,3'
          Dst:             rdp_reset_free
        - Src:             'libfreerdp/core/rdp.c:2587,3'
          Dst:             freerdp_settings_free
        - Src:             'libfreerdp/core/rdp.c:2588,3'
          Dst:             freerdp_settings_free
        - Src:             'libfreerdp/core/rdp.c:2589,3'
          Dst:             freerdp_settings_free
        - Src:             'libfreerdp/core/rdp.c:2591,3'
          Dst:             input_free
        - Src:             'libfreerdp/core/rdp.c:2592,3'
          Dst:             update_free
        - Src:             'libfreerdp/core/rdp.c:2593,3'
          Dst:             nla_free
        - Src:             'libfreerdp/core/rdp.c:2594,3'
          Dst:             redirection_free
        - Src:             'libfreerdp/core/rdp.c:2595,3'
          Dst:             autodetect_free
        - Src:             'libfreerdp/core/rdp.c:2596,3'
          Dst:             heartbeat_free
        - Src:             'libfreerdp/core/rdp.c:2597,3'
          Dst:             multitransport_free
        - Src:             'libfreerdp/core/rdp.c:2598,3'
          Dst:             bulk_free
        - Src:             'libfreerdp/core/rdp.c:2600,3'
          Dst:             PubSub_Free
        - Src:             'libfreerdp/core/rdp.c:2602,10'
          Dst:             CloseHandle
        - Src:             'libfreerdp/core/rdp.c:2603,3'
          Dst:             aad_free
        - Src:             'libfreerdp/core/rdp.c:2604,3'
          Dst:             WINPR_JSON_Delete
        - Src:             'libfreerdp/core/rdp.c:2605,3'
          Dst:             DeleteCriticalSection
        - Src:             'libfreerdp/core/rdp.c:2606,3'
          Dst:             WLog_Discard
    - functionName:    rdp_set_backup_settings
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2814
      functionLinenumberEnd: 2821
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          55
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_clone
        - freerdp_settings_free
        - rdp_reset_remote_settings
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2815,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2816,2'
          Dst:             freerdp_settings_free
        - Src:             'libfreerdp/core/rdp.c:2817,26'
          Dst:             freerdp_settings_clone
        - Src:             'libfreerdp/core/rdp.c:2820,9'
          Dst:             rdp_reset_remote_settings
    - functionName:    rdp_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2386
      functionLinenumberEnd: 2505
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         59
      ICount:          383
      EdgeCount:       81
      CyclomaticComplexity: 24
      functionsReached:
        - CreateEventA
        - InitializeCriticalSection
        - PubSub_New
        - WLog_Create
        - WLog_GetRoot
        - WLog_SetContext
        - autodetect_new
        - bulk_new
        - calloc
        - freerdp_settings_new
        - freerdp_timer_new
        - heartbeat_new
        - input_new
        - multitransport_new
        - rdp_free
        - rdp_new_common
        - rdp_set_backup_settings
        - redirection_new
        - snprintf
        - transport_get_io_callbacks
        - update_new
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2388,25'
          Dst:             calloc
        - Src:             'libfreerdp/core/rdp.c:2393,34'
          Dst:             WLog_GetRoot
        - Src:             'libfreerdp/core/rdp.c:2393,13'
          Dst:             WLog_Create
        - Src:             'libfreerdp/core/rdp.c:2397,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/rdp.c:2398,7'
          Dst:             WLog_SetContext
        - Src:             'libfreerdp/core/rdp.c:2401,2'
          Dst:             InitializeCriticalSection
        - Src:             'libfreerdp/core/rdp.c:2403,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2410,39'
          Dst:             freerdp_settings_new
        - Src:             'libfreerdp/core/rdp.c:2419,7'
          Dst:             rdp_set_backup_settings
        - Src:             'libfreerdp/core/rdp.c:2436,7'
          Dst:             rdp_new_common
        - Src:             'libfreerdp/core/rdp.c:2440,30'
          Dst:             transport_get_io_callbacks
        - Src:             'libfreerdp/core/rdp.c:2443,13'
          Dst:             calloc
        - Src:             'libfreerdp/core/rdp.c:2449,15'
          Dst:             input_new
        - Src:             'libfreerdp/core/rdp.c:2454,16'
          Dst:             update_new
        - Src:             'libfreerdp/core/rdp.c:2459,21'
          Dst:             redirection_new
        - Src:             'libfreerdp/core/rdp.c:2464,20'
          Dst:             autodetect_new
        - Src:             'libfreerdp/core/rdp.c:2469,19'
          Dst:             heartbeat_new
        - Src:             'libfreerdp/core/rdp.c:2474,24'
          Dst:             multitransport_new
        - Src:             'libfreerdp/core/rdp.c:2480,14'
          Dst:             bulk_new
        - Src:             'libfreerdp/core/rdp.c:2485,16'
          Dst:             PubSub_New
        - Src:             'libfreerdp/core/rdp.c:2489,20'
          Dst:             CreateEventA
        - Src:             'libfreerdp/core/rdp.c:2493,15'
          Dst:             freerdp_timer_new
        - Src:             'libfreerdp/core/rdp.c:2502,2'
          Dst:             rdp_free
    - functionName:    freerdp_get_stats
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2324
      functionLinenumberEnd: 2338
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          90
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rdp_check_fds
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2285
      functionLinenumberEnd: 2320
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         39
      ICount:          164
      EdgeCount:       47
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_timer_poll
        - rdp_client_redirect
        - transport_check_fds
        - transport_get_tsg
        - tsg_check_event_handles
        - tsg_get_state
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2290,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2293,8'
          Dst:             transport_get_tsg
        - Src:             'libfreerdp/core/rdp.c:2296,8'
          Dst:             tsg_check_event_handles
        - Src:             'libfreerdp/core/rdp.c:2298,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2298,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2302,7'
          Dst:             tsg_get_state
        - Src:             'libfreerdp/core/rdp.c:2306,11'
          Dst:             transport_check_fds
        - Src:             'libfreerdp/core/rdp.c:2310,8'
          Dst:             rdp_client_redirect
        - Src:             'libfreerdp/core/rdp.c:2315,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2315,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2317,12'
          Dst:             freerdp_timer_poll
    - 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:    rdp_send_error_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2266
      functionLinenumberEnd: 2282
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          91
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Write_UINT32_unchecked
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2274,6'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/rdp.c:2279,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2279,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2279,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/rdp.c:2280,11'
          Dst:             rdp_send_data_pdu
    - functionName:    rdp_data_pdu_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Release
        - Stream_SafeSeekEx
        - rdp_send_stream_pdu_init
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:466,15'
          Dst:             rdp_send_stream_pdu_init
        - Src:             'libfreerdp/core/rdp.c:471,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/rdp.c:476,2'
          Dst:             Stream_Release
    - functionName:    rdp_send_data_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 921
      functionLinenumberEnd: 977
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          238
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_GetPosition
        - Stream_Length
        - Stream_Release
        - Stream_ResetPosition
        - Stream_SealLength
        - Stream_Seek
        - Stream_SetPosition
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_get_sec_bytes
        - rdp_security_stream_out
        - rdp_write_header
        - rdp_write_share_control_header
        - rdp_write_share_data_header
        - security_lock
        - security_unlock
        - transport_write
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:936,3'
          Dst:             security_lock
        - Src:             'libfreerdp/core/rdp.c:941,19'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/rdp.c:942,3'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/rdp.c:943,8'
          Dst:             rdp_write_header
        - Src:             'libfreerdp/core/rdp.c:945,15'
          Dst:             rdp_get_sec_bytes
        - Src:             'libfreerdp/core/rdp.c:946,14'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/rdp.c:947,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/rdp.c:948,8'
          Dst:             rdp_write_share_control_header
        - Src:             'libfreerdp/core/rdp.c:950,8'
          Dst:             rdp_write_share_data_header
        - Src:             'libfreerdp/core/rdp.c:952,8'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/rdp.c:955,8'
          Dst:             rdp_security_stream_out
        - Src:             'libfreerdp/core/rdp.c:959,8'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/rdp.c:961,3'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/rdp.c:963,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:963,2'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/rdp.c:963,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:968,6'
          Dst:             transport_write
        - Src:             'libfreerdp/core/rdp.c:974,3'
          Dst:             security_unlock
        - Src:             'libfreerdp/core/rdp.c:975,2'
          Dst:             Stream_Release
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    rdp_write_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 719
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         133
      ICount:          471
      EdgeCount:       150
      CyclomaticComplexity: 19
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_BE_unchecked
        - Stream_Write_UINT8_unchecked
        - mcs_write_domain_mcspdu_header
        - per_write_integer16
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:681,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:682,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:683,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:684,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:700,7'
          Dst:             mcs_write_domain_mcspdu_header
        - Src:             'libfreerdp/core/rdp.c:702,7'
          Dst:             per_write_integer16
        - Src:             'libfreerdp/core/rdp.c:704,7'
          Dst:             per_write_integer16
        - Src:             'libfreerdp/core/rdp.c:706,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/rdp.c:708,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/rdp.c:716,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:716,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:716,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:716,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:716,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:716,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:716,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:716,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:716,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
    - functionName:    rdp_get_sec_bytes
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 802
      functionLinenumberEnd: 821
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rdp_write_share_control_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         253
      ICount:          845
      EdgeCount:       283
      CyclomaticComplexity: 32
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogEx
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:328,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:329,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:335,7'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/rdp.c:339,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:339,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:339,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:339,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:339,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:339,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:339,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:339,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:339,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdp.c:340,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:340,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:340,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:340,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:340,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:340,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:340,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:340,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:340,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdp.c:341,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:341,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:341,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:341,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:341,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:341,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:341,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:341,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:341,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    rdp_write_share_data_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         167
      ICount:          452
      EdgeCount:       179
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogEx
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:370,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:371,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:378,7'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/rdp.c:382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:382,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/rdp.c:383,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/rdp.c:384,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/rdp.c:385,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:385,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:385,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:385,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:385,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:385,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:385,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:385,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:385,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdp.c:387,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:387,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:387,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/rdp.c:388,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/rdp.c:389,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    rdp_security_stream_out
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 723
      functionLinenumberEnd: 799
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         172
      ICount:          662
      EdgeCount:       200
      CyclomaticComplexity: 30
      functionsReached:
        - Stream_Buffer
        - Stream_CheckAndLogRequiredCapacityWLogEx
        - Stream_GetPosition
        - Stream_Pointer
        - Stream_Seek
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - rdp_write_security_header
        - security_encrypt
        - security_fips_encrypt
        - security_hmac_signature
        - security_mac_signature
        - security_salted_mac_signature
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:725,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:733,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:734,8'
          Dst:             rdp_write_security_header
        - Src:             'libfreerdp/core/rdp.c:741,18'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/rdp.c:742,25'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/rdp.c:742,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:742,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:748,5'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdp.c:749,5'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/rdp.c:759,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:759,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:759,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:759,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:759,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:759,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:759,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:759,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:759,5'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/rdp.c:761,10'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/rdp.c:763,48'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/rdp.c:763,10'
          Dst:             security_hmac_signature
        - Src:             'libfreerdp/core/rdp.c:766,5'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/rdp.c:767,10'
          Dst:             security_fips_encrypt
        - Src:             'libfreerdp/core/rdp.c:772,24'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/rdp.c:773,25'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/rdp.c:778,10'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/rdp.c:782,45'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/rdp.c:781,15'
          Dst:             security_salted_mac_signature
        - Src:             'libfreerdp/core/rdp.c:785,38'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/rdp.c:784,15'
          Dst:             security_mac_signature
        - Src:             'libfreerdp/core/rdp.c:790,5'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/rdp.c:792,27'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/rdp.c:792,10'
          Dst:             security_encrypt
    - functionName:    rdp_write_security_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          150
      EdgeCount:       57
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogEx
        - Stream_Write_UINT16_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_security_flag_string
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:235,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:236,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:238,7'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/rdp.c:241,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:241,2'
          Dst:             rdp_security_flag_string
        - Src:             'libfreerdp/core/rdp.c:241,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:243,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:244,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:244,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:244,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdp.c:245,2'
          Dst:             Stream_Write_UINT16_unchecked
    - 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:    8
      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:    7
      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_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:    rdp_send_stream_pdu_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Release
        - Stream_SafeSeekEx
        - rdp_send_stream_init
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:450,15'
          Dst:             rdp_send_stream_init
        - Src:             'libfreerdp/core/rdp.c:455,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/rdp.c:460,2'
          Dst:             Stream_Release
    - functionName:    rdp_send_stream_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          88
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Release
        - Stream_SafeSeekEx
        - rdp_security_stream_init
        - transport_send_stream_init
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:428,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:429,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:431,6'
          Dst:             transport_send_stream_init
        - Src:             'libfreerdp/core/rdp.c:436,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/rdp.c:439,7'
          Dst:             rdp_security_stream_init
        - Src:             'libfreerdp/core/rdp.c:444,2'
          Dst:             Stream_Release
    - functionName:    rdp_security_stream_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          165
      EdgeCount:       51
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_SafeSeekEx
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:395,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:396,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:397,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:401,8'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/rdp.c:406,9'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/rdp.c:417,8'
          Dst:             Stream_SafeSeekEx
    - functionName:    rdp_channel_send_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2261
      functionLinenumberEnd: 2262
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - short
        - size_t
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_channel_send_packet
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2262,9'
          Dst:             freerdp_channel_send_packet
    - functionName:    rdp_send_channel_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2255
      functionLinenumberEnd: 2256
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_channel_send
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2256,9'
          Dst:             freerdp_channel_send
    - functionName:    rdp_recv_callback_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1931
      functionLinenumberEnd: 2218
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         292
      ICount:          1181
      EdgeCount:       355
      CyclomaticComplexity: 65
      functionsReached:
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - aad_get_state
        - aad_recv
        - freerdp_settings_get_bool
        - mcs_client_begin
        - mcs_recv_attach_user_confirm
        - mcs_recv_connect_response
        - mcs_send_attach_user_request
        - mcs_send_channel_join_request
        - mcs_send_erect_domain_request
        - nego_get_state
        - nego_recv
        - nego_send_negotiation_request
        - nego_set_requested_protocols
        - nego_set_state
        - nego_update_settings_from_state
        - nla_get_state
        - nla_recv_pdu
        - nla_set_state
        - rdp_client_connect_auto_detect
        - rdp_client_connect_confirm_active
        - rdp_client_connect_demand_active
        - rdp_client_connect_license
        - rdp_client_connect_mcs_channel_join_confirm
        - rdp_client_exchange_monitor_layout
        - rdp_client_skip_mcs_channel_join
        - rdp_client_transition_to_state
        - rdp_get_state
        - rdp_get_state_string
        - rdp_handle_sc_flags
        - rdp_recv_pdu
        - state_run_failed
        - state_run_result_string
        - state_run_success
        - transport_set_aad_mode
        - transport_set_nla_mode
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/rdp.c:1939,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1935,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1936,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1937,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1939,10'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/rdp.c:1942,9'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/rdp.c:1948,8'
          Dst:             nla_get_state
        - Src:             'libfreerdp/core/rdp.c:1950,9'
          Dst:             nla_recv_pdu
        - Src:             'libfreerdp/core/rdp.c:1952,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1952,6'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/rdp.c:1952,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1957,13'
          Dst:             nla_get_state
        - Src:             'libfreerdp/core/rdp.c:1959,9'
          Dst:             nego_recv
        - Src:             'libfreerdp/core/rdp.c:1962,10'
          Dst:             nego_update_settings_from_state
        - Src:             'libfreerdp/core/rdp.c:1965,9'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/rdp.c:1967,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1967,6'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/rdp.c:1967,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1971,15'
          Dst:             nla_set_state
        - Src:             'libfreerdp/core/rdp.c:1975,8'
          Dst:             state_run_success
        - Src:             'libfreerdp/core/rdp.c:1977,9'
          Dst:             nla_get_state
        - Src:             'libfreerdp/core/rdp.c:1979,6'
          Dst:             transport_set_nla_mode
        - Src:             'libfreerdp/core/rdp.c:1983,12'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/rdp.c:1985,17'
          Dst:             nego_set_requested_protocols
        - Src:             'libfreerdp/core/rdp.c:1988,17'
          Dst:             nego_send_negotiation_request
        - Src:             'libfreerdp/core/rdp.c:1990,17'
          Dst:             nla_set_state
        - Src:             'libfreerdp/core/rdp.c:1995,12'
          Dst:             nla_set_state
        - Src:             'libfreerdp/core/rdp.c:2000,8'
          Dst:             state_run_success
        - Src:             'libfreerdp/core/rdp.c:2003,9'
          Dst:             nla_get_state
        - Src:             'libfreerdp/core/rdp.c:2005,11'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/rdp.c:2014,8'
          Dst:             aad_recv
        - Src:             'libfreerdp/core/rdp.c:2016,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2016,5'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/rdp.c:2016,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2019,8'
          Dst:             state_run_success
        - Src:             'libfreerdp/core/rdp.c:2021,9'
          Dst:             aad_get_state
        - Src:             'libfreerdp/core/rdp.c:2023,6'
          Dst:             transport_set_aad_mode
        - Src:             'libfreerdp/core/rdp.c:2024,11'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/rdp.c:2033,9'
          Dst:             mcs_client_begin
        - Src:             'libfreerdp/core/rdp.c:2035,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2035,5'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/rdp.c:2035,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2039,14'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/rdp.c:2041,13'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdp.c:2046,9'
          Dst:             mcs_recv_connect_response
        - Src:             'libfreerdp/core/rdp.c:2048,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2048,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2053,10'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/rdp.c:2055,15'
          Dst:             mcs_send_erect_domain_request
        - Src:             'libfreerdp/core/rdp.c:2057,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2057,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2060,15'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/rdp.c:2062,15'
          Dst:             mcs_send_attach_user_request
        - Src:             'libfreerdp/core/rdp.c:2064,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2064,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2067,15'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/rdp.c:2074,9'
          Dst:             mcs_recv_attach_user_confirm
        - Src:             'libfreerdp/core/rdp.c:2076,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2076,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2079,14'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/rdp.c:2081,10'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/rdp.c:2083,15'
          Dst:             mcs_send_channel_join_request
        - Src:             'libfreerdp/core/rdp.c:2085,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2085,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2088,15'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/rdp.c:2095,10'
          Dst:             rdp_client_skip_mcs_channel_join
        - Src:             'libfreerdp/core/rdp.c:2101,9'
          Dst:             rdp_client_connect_mcs_channel_join_confirm
        - Src:             'libfreerdp/core/rdp.c:2103,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2103,5'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/rdp.c:2103,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2113,9'
          Dst:             rdp_client_connect_auto_detect
        - Src:             'libfreerdp/core/rdp.c:2115,10'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/rdp.c:2123,13'
          Dst:             rdp_client_connect_license
        - Src:             'libfreerdp/core/rdp.c:2125,8'
          Dst:             state_run_failed
        - Src:             'libfreerdp/core/rdp.c:2128,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2128,5'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/rdp.c:2128,5'
          Dst:             state_run_result_string
        - Src:             'libfreerdp/core/rdp.c:2128,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2136,9'
          Dst:             rdp_client_connect_auto_detect
        - Src:             'libfreerdp/core/rdp.c:2138,10'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/rdp.c:2147,13'
          Dst:             rdp_client_connect_demand_active
        - Src:             'libfreerdp/core/rdp.c:2149,8'
          Dst:             state_run_failed
        - Src:             'libfreerdp/core/rdp.c:2152,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2152,5'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/rdp.c:2152,5'
          Dst:             state_run_result_string
        - Src:             'libfreerdp/core/rdp.c:2152,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2160,10'
          Dst:             rdp_client_transition_to_state
        - Src:             'libfreerdp/core/rdp.c:2169,13'
          Dst:             rdp_client_exchange_monitor_layout
        - Src:             'libfreerdp/core/rdp.c:2173,13'
          Dst:             rdp_client_connect_confirm_active
        - Src:             'libfreerdp/core/rdp.c:2177,13'
          Dst:             rdp_handle_sc_flags
        - Src:             'libfreerdp/core/rdp.c:2181,13'
          Dst:             rdp_handle_sc_flags
        - Src:             'libfreerdp/core/rdp.c:2185,13'
          Dst:             rdp_handle_sc_flags
        - Src:             'libfreerdp/core/rdp.c:2189,13'
          Dst:             rdp_handle_sc_flags
        - Src:             'libfreerdp/core/rdp.c:2193,13'
          Dst:             rdp_recv_pdu
        - Src:             'libfreerdp/core/rdp.c:2195,8'
          Dst:             state_run_failed
        - Src:             'libfreerdp/core/rdp.c:2198,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2198,5'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/rdp.c:2198,5'
          Dst:             state_run_result_string
        - Src:             'libfreerdp/core/rdp.c:2198,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2205,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2205,4'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/rdp.c:2205,4'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/rdp.c:2205,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:2211,6'
          Dst:             state_run_failed
        - Src:             'libfreerdp/core/rdp.c:2214,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2214,3'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/rdp.c:2214,3'
          Dst:             state_run_result_string
        - Src:             'libfreerdp/core/rdp.c:2214,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdp_recv_callback
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2221
      functionLinenumberEnd: 2252
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          163
      EdgeCount:       40
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_GetPosition
        - Stream_GetRemainingLength
        - Stream_SetPosition
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_get_state_string
        - rdp_recv_callback_int
        - state_run_result_string
        - transport_get_context
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:2224,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/rdp.c:2225,30'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/rdp.c:2227,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2231,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:2235,9'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/rdp.c:2239,21'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/rdp.c:2240,23'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdp.c:2241,8'
          Dst:             rdp_recv_callback_int
        - Src:             'libfreerdp/core/rdp.c:2243,21'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/rdp.c:2244,22'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdp.c:2246,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:2246,3'
          Dst:             state_run_result_string
        - Src:             'libfreerdp/core/rdp.c:2246,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdp_recv_out_of_sequence_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1452
      functionLinenumberEnd: 1485
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          128
      EdgeCount:       28
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - pdu_type_to_str
        - rdp_recv_data_pdu
        - rdp_recv_enhanced_security_redirection_packet
        - tpkt_ensure_stream_consumed_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/rdp.c:1456,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1454,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1459,9'
          Dst:             rdp_recv_data_pdu
        - Src:             'libfreerdp/core/rdp.c:1462,9'
          Dst:             rdp_recv_enhanced_security_redirection_packet
        - Src:             'libfreerdp/core/rdp.c:1474,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdp.c:1474,4'
          Dst:             pdu_type_to_str
        - Src:             'libfreerdp/core/rdp.c:1474,4'
          Dst:             pdu_type_to_str
        - Src:             'libfreerdp/core/rdp.c:1474,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdp.c:1482,7'
          Dst:             tpkt_ensure_stream_consumed_
    - functionName:    rdp_recv_message_channel_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1401
      functionLinenumberEnd: 1449
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          174
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - autodetect_recv_request_packet
        - autodetect_recv_response_packet
        - license_recv
        - multitransport_recv_request
        - multitransport_recv_response
        - rdp_recv_heartbeat_packet
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:1402,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1403,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:1408,10'
          Dst:             autodetect_recv_request_packet
        - Src:             'libfreerdp/core/rdp.c:1414,10'
          Dst:             autodetect_recv_response_packet
        - Src:             'libfreerdp/core/rdp.c:1420,10'
          Dst:             rdp_recv_heartbeat_packet
        - Src:             'libfreerdp/core/rdp.c:1425,10'
          Dst:             multitransport_recv_request
        - Src:             'libfreerdp/core/rdp.c:1430,10'
          Dst:             multitransport_recv_response
        - Src:             'libfreerdp/core/rdp.c:1435,10'
          Dst:             license_recv
        - Src:             'libfreerdp/core/rdp.c:1440,10'
          Dst:             license_recv
        - Src:             'libfreerdp/core/rdp.c:1445,10'
          Dst:             license_recv
    - functionName:    rdp_send_message_channel_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 980
      functionLinenumberEnd: 1018
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          150
      EdgeCount:       36
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_GetPosition
        - Stream_Release
        - Stream_ResetPosition
        - Stream_SealLength
        - Stream_SetPosition
        - rdp_security_stream_out
        - rdp_write_header
        - security_lock
        - security_unlock
        - transport_write
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:985,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:986,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:990,3'
          Dst:             security_lock
        - Src:             'libfreerdp/core/rdp.c:995,19'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/rdp.c:996,3'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/rdp.c:997,8'
          Dst:             rdp_write_header
        - Src:             'libfreerdp/core/rdp.c:1000,8'
          Dst:             rdp_security_stream_out
        - Src:             'libfreerdp/core/rdp.c:1004,8'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/rdp.c:1007,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/rdp.c:1009,6'
          Dst:             transport_write
        - Src:             'libfreerdp/core/rdp.c:1015,3'
          Dst:             security_unlock
        - Src:             'libfreerdp/core/rdp.c:1017,2'
          Dst:             Stream_Release
    - functionName:    rdp_send_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 869
      functionLinenumberEnd: 918
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          183
      EdgeCount:       37
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_GetPosition
        - Stream_ResetPosition
        - Stream_SealLength
        - Stream_Seek
        - Stream_SetPosition
        - rdp_get_sec_bytes
        - rdp_security_stream_out
        - rdp_write_header
        - rdp_write_share_control_header
        - security_lock
        - security_unlock
        - transport_write
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:884,3'
          Dst:             security_lock
        - Src:             'libfreerdp/core/rdp.c:889,19'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/rdp.c:890,3'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/rdp.c:891,8'
          Dst:             rdp_write_header
        - Src:             'libfreerdp/core/rdp.c:893,15'
          Dst:             rdp_get_sec_bytes
        - Src:             'libfreerdp/core/rdp.c:894,14'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/rdp.c:895,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/rdp.c:896,8'
          Dst:             rdp_write_share_control_header
        - Src:             'libfreerdp/core/rdp.c:898,8'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/rdp.c:901,8'
          Dst:             rdp_security_stream_out
        - Src:             'libfreerdp/core/rdp.c:905,8'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/rdp.c:907,3'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/rdp.c:910,6'
          Dst:             transport_write
        - Src:             'libfreerdp/core/rdp.c:916,3'
          Dst:             security_unlock
    - functionName:    rdp_send
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 866
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          143
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_GetPosition
        - Stream_Release
        - Stream_ResetPosition
        - Stream_SealLength
        - Stream_SetPosition
        - rdp_security_stream_out
        - rdp_write_header
        - security_lock
        - security_unlock
        - transport_write
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:838,3'
          Dst:             security_lock
        - Src:             'libfreerdp/core/rdp.c:843,19'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/rdp.c:844,3'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/rdp.c:845,8'
          Dst:             rdp_write_header
        - Src:             'libfreerdp/core/rdp.c:848,8'
          Dst:             rdp_security_stream_out
        - Src:             'libfreerdp/core/rdp.c:852,8'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/rdp.c:854,3'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/rdp.c:857,6'
          Dst:             transport_write
        - Src:             'libfreerdp/core/rdp.c:863,3'
          Dst:             security_unlock
        - Src:             'libfreerdp/core/rdp.c:864,2'
          Dst:             Stream_Release
    - functionName:    rdp_message_channel_pdu_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          74
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Release
        - Stream_SafeSeekEx
        - rdp_security_stream_init
        - transport_send_stream_init
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdp.c:521,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdp.c:523,6'
          Dst:             transport_send_stream_init
        - Src:             'libfreerdp/core/rdp.c:528,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/rdp.c:531,7'
          Dst:             rdp_security_stream_init
        - Src:             'libfreerdp/core/rdp.c:536,2'
          Dst:             Stream_Release
    - functionName:    freerdp_tcp_connect_timeout
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 815
      functionLinenumberEnd: 900
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         116
      ICount:          517
      EdgeCount:       136
      CyclomaticComplexity: 22
      functionsReached:
        - CloseHandle
        - CreateEventA
        - WLog_Print_dbg_tag
        - WSAEventSelect
        - WSAGetLastError
        - WaitForMultipleObjects
        - _connect
        - _ioctlsocket
        - getnameinfo
        - getsockopt
        - utils_get_abort_event
        - winpr_int_assert
        - winpr_strerror
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/tcp.c:845,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:822,19'
          Dst:             CreateEventA
        - Src:             'libfreerdp/core/tcp.c:827,24'
          Dst:             WSAEventSelect
        - Src:             'libfreerdp/core/tcp.c:832,3'
          Dst:             WSAGetLastError
        - Src:             'libfreerdp/core/tcp.c:832,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tcp.c:836,21'
          Dst:             utils_get_abort_event
        - Src:             'libfreerdp/core/tcp.c:840,38'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:840,38'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:840,7'
          Dst:             _connect
        - Src:             'libfreerdp/core/tcp.c:843,24'
          Dst:             WSAGetLastError
        - Src:             'libfreerdp/core/tcp.c:858,25'
          Dst:             WaitForMultipleObjects
        - Src:             'libfreerdp/core/tcp.c:864,22'
          Dst:             WSAEventSelect
        - Src:             'libfreerdp/core/tcp.c:867,4'
          Dst:             WSAGetLastError
        - Src:             'libfreerdp/core/tcp.c:867,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tcp.c:872,6'
          Dst:             _ioctlsocket
        - Src:             'libfreerdp/core/tcp.c:880,6'
          Dst:             getsockopt
        - Src:             'libfreerdp/core/tcp.c:888,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:888,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:889,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:889,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:890,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:890,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:888,4'
          Dst:             getnameinfo
        - Src:             'libfreerdp/core/tcp.c:891,4'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/core/tcp.c:891,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tcp.c:898,8'
          Dst:             CloseHandle
    - 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:    19
      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:    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:    4
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_connection_address
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1229
      functionLinenumberEnd: 1237
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_tcp_address_to_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:1230,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:1233,6'
          Dst:             freerdp_tcp_address_to_string
        - Src:             'libfreerdp/core/tcp.c:1235,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_tcp_address_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 666
      functionLinenumberEnd: 706
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          113
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - _strdup
        - inet_ntop
        - snprintf
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/core/tcp.c:676,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:679,9'
          Dst:             inet_ntop
        - Src:             'libfreerdp/core/tcp.c:686,9'
          Dst:             inet_ntop
        - Src:             'libfreerdp/core/tcp.c:693,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/tcp.c:705,9'
          Dst:             _strdup
    - functionName:    inet_ntop
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_next_addrinfo
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1143
      functionLinenumberEnd: 1179
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          156
      EdgeCount:       41
      CyclomaticComplexity: 6
      functionsReached:
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/tcp.c:1154,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:1144,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:1145,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:1153,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/tcp.c:1176,2'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/tcp.c:1176,2'
          Dst:             freerdp_set_last_error_ex
    - functionName:    reorder_addrinfo_by_preference
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1095
      functionLinenumberEnd: 1139
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          157
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - freerdp_settings_get_bool
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:1096,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:1097,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:1100,6'
          Dst:             freerdp_settings_get_bool
    - functionName:    peer_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 910
      functionLinenumberEnd: 917
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - closesocket
        - freeaddrinfo
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:912,3'
          Dst:             closesocket
        - Src:             'libfreerdp/core/tcp.c:914,2'
          Dst:             freeaddrinfo
    - functionName:    transport_bio_simple_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          70
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_get_data
        - BIO_set_flags
        - BIO_set_init
        - BIO_set_shutdown
        - WLog_Print_dbg_tag
        - WSACreateEvent
        - WSAEventSelect
        - WSAGetLastError
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:351,59'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/tcp.c:353,2'
          Dst:             BIO_set_shutdown
        - Src:             'libfreerdp/core/tcp.c:354,2'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/tcp.c:355,2'
          Dst:             BIO_set_init
        - Src:             'libfreerdp/core/tcp.c:356,16'
          Dst:             WSACreateEvent
        - Src:             'libfreerdp/core/tcp.c:362,6'
          Dst:             WSAEventSelect
        - Src:             'libfreerdp/core/tcp.c:364,3'
          Dst:             WSAGetLastError
        - Src:             'libfreerdp/core/tcp.c:364,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    BIO_get_data
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    33
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_set_shutdown
      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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_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:    47
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_set_init
      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:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_bio_simple_uninit
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          89
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - BIO_get_data
        - BIO_get_init
        - BIO_get_shutdown
        - BIO_set_flags
        - BIO_set_init
        - CloseHandle
        - _shutdown
        - closesocket
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:374,59'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/tcp.c:376,6'
          Dst:             BIO_get_shutdown
        - Src:             'libfreerdp/core/tcp.c:378,7'
          Dst:             BIO_get_init
        - Src:             'libfreerdp/core/tcp.c:380,4'
          Dst:             _shutdown
        - Src:             'libfreerdp/core/tcp.c:381,4'
          Dst:             closesocket
        - Src:             'libfreerdp/core/tcp.c:388,9'
          Dst:             CloseHandle
        - Src:             'libfreerdp/core/tcp.c:392,2'
          Dst:             BIO_set_init
        - Src:             'libfreerdp/core/tcp.c:393,2'
          Dst:             BIO_set_flags
    - functionName:    BIO_get_shutdown
      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:    BIO_get_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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_tcp_layer_get_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1523
      functionLinenumberEnd: 1530
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_tcp_layer_wait
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1479
      functionLinenumberEnd: 1520
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          86
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - poll
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:1494,12'
          Dst:             poll
        - Src:             'libfreerdp/core/tcp.c:1495,28'
          Dst:             __errno_location
    - functionName:    poll
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_tcp_layer_close
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1464
      functionLinenumberEnd: 1476
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          64
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - CloseHandle
        - closesocket
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:1471,3'
          Dst:             closesocket
        - Src:             'libfreerdp/core/tcp.c:1473,9'
          Dst:             CloseHandle
    - functionName:    freerdp_tcp_layer_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1442
      functionLinenumberEnd: 1461
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          111
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - WSAGetLastError
        - __errno_location
        - _send
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:1450,21'
          Dst:             _send
        - Src:             'libfreerdp/core/tcp.c:1454,20'
          Dst:             WSAGetLastError
        - Src:             'libfreerdp/core/tcp.c:1458,3'
          Dst:             __errno_location
    - functionName:    freerdp_tcp_layer_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1418
      functionLinenumberEnd: 1439
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          115
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - WSAGetLastError
        - WSAResetEvent
        - __errno_location
        - _recv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:1426,8'
          Dst:             WSAResetEvent
        - Src:             'libfreerdp/core/tcp.c:1427,21'
          Dst:             _recv
        - Src:             'libfreerdp/core/tcp.c:1432,20'
          Dst:             WSAGetLastError
        - Src:             'libfreerdp/core/tcp.c:1436,3'
          Dst:             __errno_location
    - functionName:    freerdp_tcp_connect_layer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1534
      functionLinenumberEnd: 1583
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          181
      EdgeCount:       42
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - WSACreateEvent
        - WSAEventSelect
        - WSAGetLastError
        - closesocket
        - freerdp_get_transport
        - freerdp_tcp_connect
        - freerdp_tcp_set_keep_alive_mode
        - transport_layer_free
        - transport_layer_new
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:1535,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:1538,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:1543,15'
          Dst:             freerdp_tcp_connect
        - Src:             'libfreerdp/core/tcp.c:1546,7'
          Dst:             freerdp_tcp_set_keep_alive_mode
        - Src:             'libfreerdp/core/tcp.c:1549,30'
          Dst:             freerdp_get_transport
        - Src:             'libfreerdp/core/tcp.c:1549,10'
          Dst:             transport_layer_new
        - Src:             'libfreerdp/core/tcp.c:1560,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:1563,21'
          Dst:             WSACreateEvent
        - Src:             'libfreerdp/core/tcp.c:1568,6'
          Dst:             WSAEventSelect
        - Src:             'libfreerdp/core/tcp.c:1570,3'
          Dst:             WSAGetLastError
        - Src:             'libfreerdp/core/tcp.c:1570,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tcp.c:1580,3'
          Dst:             closesocket
        - Src:             'libfreerdp/core/tcp.c:1581,2'
          Dst:             transport_layer_free
    - functionName:    freerdp_tcp_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1084
      functionLinenumberEnd: 1092
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - transport_tcp_connect
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:1091,9'
          Dst:             transport_tcp_connect
    - functionName:    freerdp_tcp_set_keep_alive_mode
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1012
      functionLinenumberEnd: 1080
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          160
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - freerdp_settings_get_uint32
        - setsockopt
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:1013,26'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/tcp.c:1019,6'
          Dst:             setsockopt
        - Src:             'libfreerdp/core/tcp.c:1021,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tcp.c:1026,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/tcp.c:1029,6'
          Dst:             setsockopt
        - Src:             'libfreerdp/core/tcp.c:1031,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tcp.c:1040,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/tcp.c:1043,6'
          Dst:             setsockopt
        - Src:             'libfreerdp/core/tcp.c:1045,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tcp.c:1050,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/tcp.c:1053,6'
          Dst:             setsockopt
        - Src:             'libfreerdp/core/tcp.c:1055,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tcp.c:1071,11'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/tcp.c:1074,6'
          Dst:             setsockopt
        - Src:             'libfreerdp/core/tcp.c:1076,3'
          Dst:             WLog_Print_dbg_tag
    - 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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_tcp_set_nodelay
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1586
      functionLinenumberEnd: 1622
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          160
      EdgeCount:       45
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - __errno_location
        - getsockopt
        - setsockopt
        - winpr_int_assert
        - winpr_strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:1587,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:1592,17'
          Dst:             getsockopt
        - Src:             'libfreerdp/core/tcp.c:1596,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/tcp.c:1596,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/tcp.c:1596,3'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/core/tcp.c:1596,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/tcp.c:1605,7'
          Dst:             setsockopt
        - Src:             'libfreerdp/core/tcp.c:1611,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/tcp.c:1611,4'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/tcp.c:1611,4'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/core/tcp.c:1611,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/tcp.c:1618,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/tcp.c:1618,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    freerdp_tcp_get_ip_address
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 709
      functionLinenumberEnd: 723
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          77
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_settings_set_string
        - freerdp_tcp_address_to_string
        - getsockname
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:710,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:715,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/tcp.c:719,6'
          Dst:             getsockname
        - Src:             'libfreerdp/core/tcp.c:721,28'
          Dst:             freerdp_tcp_address_to_string
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_host_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1240
      functionLinenumberEnd: 1289
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          167
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - close
        - freeaddrinfo
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - freerdp_tcp_connect_timeout
        - freerdp_tcp_resolve_host
        - get_next_addrinfo
        - log_connection_address
        - reorder_addrinfo_by_preference
        - socket
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:1243,28'
          Dst:             freerdp_tcp_resolve_host
        - Src:             'libfreerdp/core/tcp.c:1247,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/tcp.c:1247,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/tcp.c:1250,2'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/tcp.c:1256,11'
          Dst:             reorder_addrinfo_by_preference
        - Src:             'libfreerdp/core/tcp.c:1258,17'
          Dst:             get_next_addrinfo
        - Src:             'libfreerdp/core/tcp.c:1264,12'
          Dst:             socket
        - Src:             'libfreerdp/core/tcp.c:1267,4'
          Dst:             log_connection_address
        - Src:             'libfreerdp/core/tcp.c:1269,9'
          Dst:             freerdp_tcp_connect_timeout
        - Src:             'libfreerdp/core/tcp.c:1272,5'
          Dst:             close
        - Src:             'libfreerdp/core/tcp.c:1280,8'
          Dst:             get_next_addrinfo
        - Src:             'libfreerdp/core/tcp.c:1287,2'
          Dst:             freeaddrinfo
    - functionName:    freerdp_tcp_resolve_host
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 770
      functionLinenumberEnd: 795
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          80
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - gai_strerror
        - getaddrinfo
        - snprintf
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:782,9'
          Dst:             snprintf
        - Src:             'libfreerdp/core/tcp.c:786,11'
          Dst:             getaddrinfo
        - Src:             'libfreerdp/core/tcp.c:790,3'
          Dst:             gai_strerror
        - Src:             'libfreerdp/core/tcp.c:790,3'
          Dst:             WLog_Print_dbg_tag
    - 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:    5
      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:    32
      BranchProfiles:  []
      Callsites:       []
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gai_strerror
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_tcp_connect_multi
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 921
      functionLinenumberEnd: 1009
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         97
      ICount:          491
      EdgeCount:       121
      CyclomaticComplexity: 26
      functionsReached:
        - _connect
        - _socket
        - calloc
        - freeaddrinfo
        - freerdp_set_last_error_ex
        - freerdp_tcp_resolve_host
        - peer_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:927,28'
          Dst:             calloc
        - Src:             'libfreerdp/core/tcp.c:928,27'
          Dst:             calloc
        - Src:             'libfreerdp/core/tcp.c:942,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:942,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:944,12'
          Dst:             freerdp_tcp_resolve_host
        - Src:             'libfreerdp/core/tcp.c:963,20'
          Dst:             _socket
        - Src:             'libfreerdp/core/tcp.c:967,4'
          Dst:             freeaddrinfo
        - Src:             'libfreerdp/core/tcp.c:985,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:985,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:985,7'
          Dst:             _connect
        - Src:             'libfreerdp/core/tcp.c:1001,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/tcp.c:1004,3'
          Dst:             peer_free
    - functionName:    freerdp_tcp_is_hostname_resolvable
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 811
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - freeaddrinfo
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - freerdp_tcp_resolve_host
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:799,28'
          Dst:             freerdp_tcp_resolve_host
        - Src:             'libfreerdp/core/tcp.c:803,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/tcp.c:803,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/tcp.c:808,2'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/tcp.c:809,2'
          Dst:             freeaddrinfo
    - functionName:    freerdp_vsock_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1182
      functionLinenumberEnd: 1224
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:1223,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_uds_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 739
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - close
        - connect
        - socket
        - strncpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:744,11'
          Dst:             socket
        - Src:             'libfreerdp/core/tcp.c:748,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tcp.c:753,2'
          Dst:             strncpy
        - Src:             'libfreerdp/core/tcp.c:754,11'
          Dst:             connect
        - Src:             'libfreerdp/core/tcp.c:758,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tcp.c:759,3'
          Dst:             close
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_tcp_default_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1293
      functionLinenumberEnd: 1408
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         99
      ICount:          455
      EdgeCount:       128
      CyclomaticComplexity: 31
      functionsReached:
        - WLog_Get
        - WLog_Print_dbg_tag
        - WaitForSingleObject
        - close
        - freerdp_get_last_error
        - freerdp_host_connect
        - freerdp_set_last_error_ex
        - freerdp_tcp_connect_multi
        - freerdp_tcp_get_ip_address
        - freerdp_tcp_is_hostname_resolvable
        - freerdp_tcp_set_keep_alive_mode
        - freerdp_tcp_set_nodelay
        - freerdp_uds_connect
        - freerdp_vsock_connect
        - getsockopt
        - setsockopt
        - utils_get_abort_event
        - utils_is_vsock
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:1300,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/tcp.c:1300,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/tcp.c:1311,22'
          Dst:             utils_is_vsock
        - Src:             'libfreerdp/core/tcp.c:1314,12'
          Dst:             freerdp_uds_connect
        - Src:             'libfreerdp/core/tcp.c:1318,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/tcp.c:1318,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/tcp.c:1325,12'
          Dst:             freerdp_vsock_connect
        - Src:             'libfreerdp/core/tcp.c:1330,9'
          Dst:             freerdp_tcp_is_hostname_resolvable
        - Src:             'libfreerdp/core/tcp.c:1335,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:1336,15'
          Dst:             freerdp_tcp_connect_multi
        - Src:             'libfreerdp/core/tcp.c:1344,13'
          Dst:             freerdp_host_connect
        - Src:             'libfreerdp/core/tcp.c:1349,8'
          Dst:             freerdp_tcp_get_ip_address
        - Src:             'libfreerdp/core/tcp.c:1352,5'
          Dst:             close
        - Src:             'libfreerdp/core/tcp.c:1354,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/tcp.c:1354,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/tcp.c:1356,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tcp.c:1363,33'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/tcp.c:1363,9'
          Dst:             freerdp_tcp_set_nodelay
        - Src:             'libfreerdp/core/tcp.c:1369,6'
          Dst:             getsockopt
        - Src:             'libfreerdp/core/tcp.c:1376,8'
          Dst:             setsockopt
        - Src:             'libfreerdp/core/tcp.c:1378,5'
          Dst:             close
        - Src:             'libfreerdp/core/tcp.c:1380,5'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/tcp.c:1380,5'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/tcp.c:1382,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tcp.c:1390,8'
          Dst:             freerdp_tcp_set_keep_alive_mode
        - Src:             'libfreerdp/core/tcp.c:1392,4'
          Dst:             close
        - Src:             'libfreerdp/core/tcp.c:1394,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/tcp.c:1394,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/tcp.c:1396,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tcp.c:1401,26'
          Dst:             utils_get_abort_event
        - Src:             'libfreerdp/core/tcp.c:1401,6'
          Dst:             WaitForSingleObject
        - Src:             'libfreerdp/core/tcp.c:1403,3'
          Dst:             close
    - functionName:    freerdp_tcp_get_peer_address
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 736
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_tcp_address_to_string
        - getpeername
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:730,6'
          Dst:             getpeername
        - Src:             'libfreerdp/core/tcp.c:735,9'
          Dst:             freerdp_tcp_address_to_string
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_bio_buffered_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 642
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - BIO_get_data
        - ringbuffer_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:634,63'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/tcp.c:639,2'
          Dst:             ringbuffer_destroy
    - functionName:    transport_bio_buffered_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 627
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_set_data
        - BIO_set_flags
        - BIO_set_init
        - calloc
        - ringbuffer_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:614,2'
          Dst:             BIO_set_init
        - Src:             'libfreerdp/core/tcp.c:615,2'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/tcp.c:616,36'
          Dst:             calloc
        - Src:             'libfreerdp/core/tcp.c:621,2'
          Dst:             BIO_set_data
        - Src:             'libfreerdp/core/tcp.c:623,7'
          Dst:             ringbuffer_init
    - functionName:    BIO_set_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:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_bio_buffered_ctrl
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 573
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          162
      EdgeCount:       37
      CyclomaticComplexity: 5
      functionsReached:
        - BIO_ctrl
        - BIO_get_data
        - BIO_next
        - ringbuffer_used
        - transport_bio_buffered_write
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/tcp.c:577,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:575,63'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/tcp.c:580,9'
          Dst:             ringbuffer_used
        - Src:             'libfreerdp/core/tcp.c:583,15'
          Dst:             transport_bio_buffered_write
        - Src:             'libfreerdp/core/tcp.c:588,13'
          Dst:             ringbuffer_used
        - Src:             'libfreerdp/core/tcp.c:588,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:588,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:604,22'
          Dst:             BIO_next
        - Src:             'libfreerdp/core/tcp.c:604,13'
          Dst:             BIO_ctrl
    - functionName:    transport_bio_buffered_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 526
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          253
      EdgeCount:       53
      CyclomaticComplexity: 12
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - BIO_next
        - BIO_set_flags
        - BIO_test_flags
        - BIO_write
        - ERR_clear_error
        - WLog_Print_dbg_tag
        - ringbuffer_commit_read_bytes
        - ringbuffer_peek
        - ringbuffer_used
        - ringbuffer_write
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:466,63'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/tcp.c:469,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:470,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tcp.c:475,2'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/tcp.c:480,27'
          Dst:             ringbuffer_write
        - Src:             'libfreerdp/core/tcp.c:482,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tcp.c:486,54'
          Dst:             ringbuffer_used
        - Src:             'libfreerdp/core/tcp.c:486,12'
          Dst:             ringbuffer_peek
        - Src:             'libfreerdp/core/tcp.c:487,13'
          Dst:             BIO_next
        - Src:             'libfreerdp/core/tcp.c:493,4'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/tcp.c:496,23'
          Dst:             BIO_write
        - Src:             'libfreerdp/core/tcp.c:500,10'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/tcp.c:502,6'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/tcp.c:507,9'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/tcp.c:509,6'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/tcp.c:524,2'
          Dst:             ringbuffer_commit_read_bytes
    - functionName:    BIO_next
      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:    66
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_clear_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:    36
      BranchProfiles:  []
      Callsites:       []
    - 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:    35
      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:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_test_flags
      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:    19
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_bio_buffered_gets
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 569
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_bio_buffered_puts
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 563
      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:    transport_bio_buffered_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 557
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          79
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - BIO_next
        - BIO_read
        - BIO_set_flags
        - BIO_test_flags
        - ERR_clear_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:531,63'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/tcp.c:532,18'
          Dst:             BIO_next
        - Src:             'libfreerdp/core/tcp.c:534,2'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/tcp.c:535,2'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/tcp.c:536,11'
          Dst:             BIO_read
        - Src:             'libfreerdp/core/tcp.c:540,8'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/tcp.c:542,4'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/tcp.c:546,3'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/tcp.c:548,7'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/tcp.c:550,4'
          Dst:             BIO_set_flags
    - 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:    21
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_s_buffered_socket
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 663
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_meth_new
        - BIO_meth_set_create
        - BIO_meth_set_ctrl
        - BIO_meth_set_destroy
        - BIO_meth_set_gets
        - BIO_meth_set_puts
        - BIO_meth_set_read
        - BIO_meth_set_write
        - transport_bio_buffered_ctrl
        - transport_bio_buffered_free
        - transport_bio_buffered_gets
        - transport_bio_buffered_new
        - transport_bio_buffered_puts
        - transport_bio_buffered_read
        - transport_bio_buffered_write
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:650,23'
          Dst:             BIO_meth_new
        - Src:             'libfreerdp/core/tcp.c:653,3'
          Dst:             BIO_meth_set_write
        - Src:             'libfreerdp/core/tcp.c:653,3'
          Dst:             transport_bio_buffered_write
        - Src:             'libfreerdp/core/tcp.c:654,3'
          Dst:             BIO_meth_set_read
        - Src:             'libfreerdp/core/tcp.c:654,3'
          Dst:             transport_bio_buffered_read
        - Src:             'libfreerdp/core/tcp.c:655,3'
          Dst:             BIO_meth_set_puts
        - Src:             'libfreerdp/core/tcp.c:655,3'
          Dst:             transport_bio_buffered_puts
        - Src:             'libfreerdp/core/tcp.c:656,3'
          Dst:             BIO_meth_set_gets
        - Src:             'libfreerdp/core/tcp.c:656,3'
          Dst:             transport_bio_buffered_gets
        - Src:             'libfreerdp/core/tcp.c:657,3'
          Dst:             BIO_meth_set_ctrl
        - Src:             'libfreerdp/core/tcp.c:657,3'
          Dst:             transport_bio_buffered_ctrl
        - Src:             'libfreerdp/core/tcp.c:658,3'
          Dst:             BIO_meth_set_create
        - Src:             'libfreerdp/core/tcp.c:658,3'
          Dst:             transport_bio_buffered_new
        - Src:             'libfreerdp/core/tcp.c:659,3'
          Dst:             BIO_meth_set_destroy
        - Src:             'libfreerdp/core/tcp.c:659,3'
          Dst:             transport_bio_buffered_free
    - functionName:    BIO_meth_new
      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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_meth_set_write
      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:    BIO_meth_set_read
      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:    BIO_meth_set_puts
      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:    BIO_meth_set_gets
      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:    BIO_meth_set_ctrl
      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:    BIO_meth_set_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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_meth_set_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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_bio_simple_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 411
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_get_data
        - BIO_set_data
        - transport_bio_simple_uninit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:417,2'
          Dst:             transport_bio_simple_uninit
        - Src:             'libfreerdp/core/tcp.c:418,34'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/tcp.c:422,3'
          Dst:             BIO_set_data
    - functionName:    transport_bio_simple_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - BIO_set_data
        - BIO_set_flags
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:400,2'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/tcp.c:401,34'
          Dst:             calloc
        - Src:             'libfreerdp/core/tcp.c:406,2'
          Dst:             BIO_set_data
    - functionName:    transport_bio_simple_ctrl
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         63
      ICount:          355
      EdgeCount:       77
      CyclomaticComplexity: 16
      functionsReached:
        - BIO_get_data
        - BIO_get_init
        - BIO_get_shutdown
        - BIO_set_shutdown
        - __errno_location
        - fcntl64
        - poll
        - transport_bio_simple_init
        - transport_bio_simple_uninit
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/tcp.c:191,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:189,59'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/tcp.c:194,4'
          Dst:             transport_bio_simple_uninit
        - Src:             'libfreerdp/core/tcp.c:195,4'
          Dst:             transport_bio_simple_init
        - Src:             'libfreerdp/core/tcp.c:198,9'
          Dst:             BIO_get_init
        - Src:             'libfreerdp/core/tcp.c:204,9'
          Dst:             BIO_get_init
        - Src:             'libfreerdp/core/tcp.c:213,12'
          Dst:             fcntl64
        - Src:             'libfreerdp/core/tcp.c:219,11'
          Dst:             fcntl64
        - Src:             'libfreerdp/core/tcp.c:221,11'
          Dst:             fcntl64
        - Src:             'libfreerdp/core/tcp.c:240,14'
          Dst:             poll
        - Src:             'libfreerdp/core/tcp.c:241,30'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/tcp.c:263,5'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/tcp.c:279,14'
          Dst:             poll
        - Src:             'libfreerdp/core/tcp.c:280,30'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/tcp.c:302,5'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/tcp.c:309,5'
          Dst:             transport_bio_simple_uninit
        - Src:             'libfreerdp/core/tcp.c:310,5'
          Dst:             transport_bio_simple_init
        - Src:             'libfreerdp/core/tcp.c:317,8'
          Dst:             BIO_get_init
        - Src:             'libfreerdp/core/tcp.c:328,13'
          Dst:             BIO_get_shutdown
        - Src:             'libfreerdp/core/tcp.c:332,4'
          Dst:             BIO_set_shutdown
    - 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:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_bio_simple_gets
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_bio_simple_puts
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 177
      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:    transport_bio_simple_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          114
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - BIO_set_flags
        - WSAGetLastError
        - WSAResetEvent
        - _recv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:140,59'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/tcp.c:145,2'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/tcp.c:146,8'
          Dst:             WSAResetEvent
        - Src:             'libfreerdp/core/tcp.c:147,11'
          Dst:             _recv
        - Src:             'libfreerdp/core/tcp.c:156,3'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/tcp.c:160,10'
          Dst:             WSAGetLastError
        - Src:             'libfreerdp/core/tcp.c:165,3'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/tcp.c:169,3'
          Dst:             BIO_clear_flags
    - functionName:    transport_bio_simple_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          99
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - BIO_set_flags
        - WSAGetLastError
        - _send
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:110,59'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/tcp.c:115,2'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/tcp.c:116,11'
          Dst:             _send
        - Src:             'libfreerdp/core/tcp.c:120,11'
          Dst:             WSAGetLastError
        - Src:             'libfreerdp/core/tcp.c:125,4'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/tcp.c:129,4'
          Dst:             BIO_clear_flags
    - functionName:    BIO_s_simple_socket
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_meth_new
        - BIO_meth_set_create
        - BIO_meth_set_ctrl
        - BIO_meth_set_destroy
        - BIO_meth_set_gets
        - BIO_meth_set_puts
        - BIO_meth_set_read
        - BIO_meth_set_write
        - transport_bio_simple_ctrl
        - transport_bio_simple_free
        - transport_bio_simple_gets
        - transport_bio_simple_new
        - transport_bio_simple_puts
        - transport_bio_simple_read
        - transport_bio_simple_write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.c:435,23'
          Dst:             BIO_meth_new
        - Src:             'libfreerdp/core/tcp.c:438,3'
          Dst:             BIO_meth_set_write
        - Src:             'libfreerdp/core/tcp.c:438,3'
          Dst:             transport_bio_simple_write
        - Src:             'libfreerdp/core/tcp.c:439,3'
          Dst:             BIO_meth_set_read
        - Src:             'libfreerdp/core/tcp.c:439,3'
          Dst:             transport_bio_simple_read
        - Src:             'libfreerdp/core/tcp.c:440,3'
          Dst:             BIO_meth_set_puts
        - Src:             'libfreerdp/core/tcp.c:440,3'
          Dst:             transport_bio_simple_puts
        - Src:             'libfreerdp/core/tcp.c:441,3'
          Dst:             BIO_meth_set_gets
        - Src:             'libfreerdp/core/tcp.c:441,3'
          Dst:             transport_bio_simple_gets
        - Src:             'libfreerdp/core/tcp.c:442,3'
          Dst:             BIO_meth_set_ctrl
        - Src:             'libfreerdp/core/tcp.c:442,3'
          Dst:             transport_bio_simple_ctrl
        - Src:             'libfreerdp/core/tcp.c:443,3'
          Dst:             BIO_meth_set_create
        - Src:             'libfreerdp/core/tcp.c:443,3'
          Dst:             transport_bio_simple_new
        - Src:             'libfreerdp/core/tcp.c:444,3'
          Dst:             BIO_meth_set_destroy
        - Src:             'libfreerdp/core/tcp.c:444,3'
          Dst:             transport_bio_simple_free
    - 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_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:    4
      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_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:    tpdu_type_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tpdu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 284
      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:   'libfreerdp/core/tpdu.c:269,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    tpdu_read_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tpdu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - tpdu_read_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tpdu.c:251,7'
          Dst:             tpdu_read_header
        - Src:             'libfreerdp/core/tpdu.c:257,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    tpdu_read_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tpdu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          94
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
        - Stream_SafeSeekEx
        - Stream_Seek
        - WLog_Print_dbg_tag
        - stream_read_u8
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tpdu.c:77,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/tpdu.c:80,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/tpdu.c:81,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/tpdu.c:85,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tpdu.c:92,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/tpdu.c:99,8'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/tpdu.c:101,4'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/tpdu.c:101,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:    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:    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:    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:    2
      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:    tpdu_write_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tpdu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - tpdu_write_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tpdu.c:238,9'
          Dst:             tpdu_write_header
    - functionName:    tpdu_write_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tpdu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         85
      ICount:          185
      EdgeCount:       88
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tpdu.c:119,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/tpdu.c:122,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tpdu.c:123,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tpdu.c:123,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tpdu.c:123,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/tpdu.c:124,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tpdu.c:124,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tpdu.c:124,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/tpdu.c:128,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/tpdu.c:132,8'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/tpdu.c:134,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/tpdu.c:135,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/tpdu.c:136,3'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    tpdu_write_disconnect_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tpdu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - tpdu_write_header
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tpdu.c:228,9'
          Dst:             tpdu_write_header
    - functionName:    tpdu_write_connection_confirm
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tpdu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - tpdu_write_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tpdu.c:217,9'
          Dst:             tpdu_write_header
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    tpdu_read_connection_confirm
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tpdu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          69
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetPosition
        - WLog_Print_dbg_tag
        - tpdu_read_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tpdu.c:187,13'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/tpdu.c:189,7'
          Dst:             tpdu_read_header
        - Src:             'libfreerdp/core/tpdu.c:194,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tpdu.c:204,16'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/tpdu.c:206,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
    - functionName:    tpdu_write_connection_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tpdu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - tpdu_write_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tpdu.c:171,9'
          Dst:             tpdu_write_header
    - functionName:    tpdu_read_connection_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tpdu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - tpdu_read_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tpdu.c:151,7'
          Dst:             tpdu_read_header
        - Src:             'libfreerdp/core/tpdu.c:156,3'
          Dst:             WLog_Print_dbg_tag
    - 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:    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_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:    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:    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:    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:    tpkt_write_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tpkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          105
      EdgeCount:       47
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Write_UINT16_BE_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tpkt.c:166,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/tpkt.c:168,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/tpkt.c:169,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/tpkt.c:171,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tpkt.c:172,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tpkt.c:172,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/tpkt.c:172,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
    - functionName:    tpkt_ensure_stream_consumed_
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tpkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          91
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tpkt.c:139,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/tpkt.c:139,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/tpkt.c:143,15'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/tpkt.c:146,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/tpkt.c:146,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:    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:    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_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:    3
      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:    tpkt_read_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tpkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          103
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek
        - WLog_Print_dbg_tag
        - stream_read_u16_be
        - stream_read_u8
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tpkt.c:98,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/tpkt.c:101,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/tpkt.c:106,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/tpkt.c:109,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/tpkt.c:110,3'
          Dst:             stream_read_u16_be
        - Src:             'libfreerdp/core/tpkt.c:115,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/tpkt.c:119,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/tpkt.c:121,4'
          Dst:             WLog_Print_dbg_tag
    - 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:    tpkt_verify_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tpkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          47
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u8
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tpkt.c:74,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/tpkt.c:77,2'
          Dst:             stream_read_u8
    - 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_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:    11
      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_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:    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:    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_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:    1
      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_INT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Get_UINT16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:95,22'
          Dst:             winpr_Data_Get_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:    stream_read_i16_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 228
      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_INT16
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:222,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:223,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:223,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:225,19'
          Dst:             winpr_Data_Get_INT16
        - Src:             'winpr/include/winpr/stream.h:227,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Get_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:347,10'
          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:    6
      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_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:    fastpath_recv_input_event_qoe
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 783
      functionLinenumberEnd: 808
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          170
      EdgeCount:       50
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:784,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:785,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:786,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:787,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:788,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:790,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/fastpath.c:796,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/fastpath.c:798,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/fastpath.c:800,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:807,9'
          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:    38
      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:    fastpath_recv_input_event_relmouse
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 779
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          192
      EdgeCount:       54
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - stream_read_i16_le
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:754,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:755,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:756,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:757,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:758,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:760,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/fastpath.c:765,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/fastpath.c:766,2'
          Dst:             stream_read_i16_le
        - Src:             'libfreerdp/core/fastpath.c:767,2'
          Dst:             stream_read_i16_le
        - Src:             'libfreerdp/core/fastpath.c:769,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/fastpath.c:771,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:778,9'
          Dst:             WLog_Print_dbg_tag
    - 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:    11
      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:    fastpath_recv_input_event_unicode
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 860
      functionLinenumberEnd: 881
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          184
      EdgeCount:       51
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:864,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:865,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:867,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/fastpath.c:870,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/fastpath.c:876,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:877,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:878,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:879,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    fastpath_recv_input_event_sync
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 847
      functionLinenumberEnd: 856
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          119
      EdgeCount:       35
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:850,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:851,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:852,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:853,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:856,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    fastpath_recv_input_event_mousex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 812
      functionLinenumberEnd: 843
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          192
      EdgeCount:       54
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:818,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:819,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:820,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:821,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:822,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:824,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/fastpath.c:829,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/fastpath.c:830,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/fastpath.c:831,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/fastpath.c:833,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/fastpath.c:835,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:842,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    fastpath_recv_input_event_mouse
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 745
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          155
      EdgeCount:       45
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:731,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:732,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:733,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:734,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:736,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/fastpath.c:741,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/fastpath.c:742,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/fastpath.c:743,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/fastpath.c:744,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    fastpath_recv_input_event_scancode
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 722
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          195
      EdgeCount:       51
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Get_UINT8
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:699,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:700,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:701,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:702,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:704,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/fastpath.c:709,21'
          Dst:             Stream_Get_UINT8
        - Src:             'libfreerdp/core/fastpath.c:721,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    fastpath_read_input_event_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 681
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          89
      EdgeCount:       27
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:684,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:685,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:686,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:688,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/fastpath.c:691,2'
          Dst:             stream_read_u8
    - functionName:    fastpath_update_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fastpath_recv_update_synchronize
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          62
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_SafeSeekEx
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:338,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:339,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:341,21'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/fastpath.c:343,9'
          Dst:             Stream_SafeSeekEx
    - functionName:    fastpath_recv_update_common
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          220
      EdgeCount:       44
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - free_bitmap_update
        - free_palette_update
        - freerdp_settings_get_bool
        - stream_read_u16_le
        - update_cast
        - update_read_bitmap_update
        - update_read_palette
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/fastpath.c:299,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:284,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/fastpath.c:293,18'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/fastpath.c:295,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/fastpath.c:298,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/fastpath.c:303,35'
          Dst:             update_read_bitmap_update
        - Src:             'libfreerdp/core/fastpath.c:309,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:310,4'
          Dst:             free_bitmap_update
        - Src:             'libfreerdp/core/fastpath.c:316,37'
          Dst:             update_read_palette
        - Src:             'libfreerdp/core/fastpath.c:322,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:323,4'
          Dst:             free_palette_update
    - functionName:    update_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.h:171,2'
          Dst:             winpr_int_assert
    - functionName:    fastpath_recv_orders
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          80
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - update_recv_order
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:252,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:258,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:262,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/fastpath.c:265,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/fastpath.c:269,8'
          Dst:             update_recv_order
    - functionName:    fastpath_recv_update_paint_block
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          65
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - update_begin_paint
        - update_end_paint
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:350,7'
          Dst:             update_begin_paint
        - Src:             'libfreerdp/core/fastpath.c:354,7'
          Dst:             update_end_paint
    - functionName:    fastpath_recv_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         113
      ICount:          684
      EdgeCount:       141
      CyclomaticComplexity: 30
      functionsReached:
        - Stream_ResetPosition
        - Stream_SealLength
        - WLog_Print_dbg_tag
        - fastpath_recv_orders
        - fastpath_recv_update_common
        - fastpath_recv_update_paint_block
        - fastpath_recv_update_synchronize
        - fastpath_update_to_string
        - free_pointer_cached_update
        - free_pointer_color_update
        - free_pointer_large_update
        - free_pointer_new_update
        - free_pointer_position_update
        - freerdp_settings_get_bool
        - update_cast
        - update_read_pointer_cached
        - update_read_pointer_color
        - update_read_pointer_large
        - update_read_pointer_new
        - update_read_pointer_position
        - update_recv_surfcmds
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/fastpath.c:390,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:367,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/fastpath.c:368,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/fastpath.c:375,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/fastpath.c:378,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:381,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:389,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/fastpath.c:393,9'
          Dst:             fastpath_recv_update_paint_block
        - Src:             'libfreerdp/core/fastpath.c:393,9'
          Dst:             fastpath_recv_orders
        - Src:             'libfreerdp/core/fastpath.c:398,9'
          Dst:             fastpath_recv_update_paint_block
        - Src:             'libfreerdp/core/fastpath.c:398,9'
          Dst:             fastpath_recv_update_common
        - Src:             'libfreerdp/core/fastpath.c:402,9'
          Dst:             fastpath_recv_update_synchronize
        - Src:             'libfreerdp/core/fastpath.c:403,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:407,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:413,13'
          Dst:             fastpath_recv_update_paint_block
        - Src:             'libfreerdp/core/fastpath.c:413,13'
          Dst:             update_recv_surfcmds
        - Src:             'libfreerdp/core/fastpath.c:422,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:431,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:437,48'
          Dst:             update_read_pointer_position
        - Src:             'libfreerdp/core/fastpath.c:442,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:444,5'
          Dst:             free_pointer_position_update
        - Src:             'libfreerdp/core/fastpath.c:451,42'
          Dst:             update_read_pointer_color
        - Src:             'libfreerdp/core/fastpath.c:456,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:457,5'
          Dst:             free_pointer_color_update
        - Src:             'libfreerdp/core/fastpath.c:464,44'
          Dst:             update_read_pointer_cached
        - Src:             'libfreerdp/core/fastpath.c:469,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:470,5'
          Dst:             free_pointer_cached_update
        - Src:             'libfreerdp/core/fastpath.c:477,38'
          Dst:             update_read_pointer_new
        - Src:             'libfreerdp/core/fastpath.c:482,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:483,5'
          Dst:             free_pointer_new_update
        - Src:             'libfreerdp/core/fastpath.c:490,42'
          Dst:             update_read_pointer_large
        - Src:             'libfreerdp/core/fastpath.c:495,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:496,5'
          Dst:             free_pointer_large_update
        - Src:             'libfreerdp/core/fastpath.c:504,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/fastpath.c:507,3'
          Dst:             fastpath_update_to_string
        - Src:             'libfreerdp/core/fastpath.c:507,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    Stream_ResetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1358,3'
          Dst:             winpr_int_assert
    - functionName:    fastpath_read_update_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          93
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:114,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/fastpath.c:117,2'
          Dst:             stream_read_u8
    - functionName:    fastpath_decrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1442
      functionLinenumberEnd: 1456
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - fastpath_get_encryption_flags
        - rdp_decrypt
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:1443,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1444,6'
          Dst:             fastpath_get_encryption_flags
        - Src:             'libfreerdp/core/fastpath.c:1447,8'
          Dst:             fastpath_get_encryption_flags
        - Src:             'libfreerdp/core/fastpath.c:1451,8'
          Dst:             rdp_decrypt
    - functionName:    fastpath_get_encryption_flags
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1436
      functionLinenumberEnd: 1438
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:1437,2'
          Dst:             winpr_int_assert
    - functionName:    fastpath_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1426
      functionLinenumberEnd: 1433
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:1429,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/fastpath.c:1430,3'
          Dst:             Stream_Free
    - functionName:    fastpath_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1401
      functionLinenumberEnd: 1423
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          86
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_New
        - calloc
        - fastpath_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:1404,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1406,27'
          Dst:             calloc
        - Src:             'libfreerdp/core/fastpath.c:1413,17'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/fastpath.c:1414,25'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/fastpath.c:1421,2'
          Dst:             fastpath_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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1242,3'
          Dst:             Stream_Fill
    - 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:    4
      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:    fastpath_write_update_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         61
      ICount:          223
      EdgeCount:       65
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:127,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:133,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/fastpath.c:135,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:135,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:135,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/fastpath.c:139,8'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/fastpath.c:142,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:142,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:142,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/fastpath.c:145,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/fastpath.c:148,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:148,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:148,2'
          Dst:             Stream_Write_UINT16_unchecked
    - 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:    9
      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:    fastpath_write_update_pdu_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         76
      ICount:          275
      EdgeCount:       81
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Write
        - Stream_Write_UINT8_unchecked
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:163,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:164,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:166,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/fastpath.c:171,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:171,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:171,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/fastpath.c:172,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:172,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:172,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/fastpath.c:173,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:173,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:173,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/fastpath.c:177,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:178,7'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/fastpath.c:181,9'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/fastpath.c:184,4'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/fastpath.c:187,8'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/fastpath.c:190,3'
          Dst:             Stream_Write
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    fastpath_get_update_pdu_header_size
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          84
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:208,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:209,7'
          Dst:             freerdp_settings_get_uint32
    - functionName:    fastpath_get_update_header_size
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:154,2'
          Dst:             winpr_int_assert
    - functionName:    fastpath_send_update_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1190
      functionLinenumberEnd: 1398
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         124
      ICount:          818
      EdgeCount:       167
      CyclomaticComplexity: 45
      functionsReached:
        - Stream_Buffer
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_GetPosition
        - Stream_Pointer
        - Stream_ResetPosition
        - Stream_SealLength
        - Stream_Seek
        - Stream_Write
        - Stream_Zero
        - WLog_Print_dbg_tag
        - bulk_compress
        - bulk_compression_max_size
        - fastpath_get_update_header_size
        - fastpath_get_update_pdu_header_size
        - fastpath_write_update_header
        - fastpath_write_update_pdu_header
        - freerdp_settings_get_bool
        - freerdp_settings_get_uint32
        - security_encrypt
        - security_fips_encrypt
        - security_hmac_signature
        - security_lock
        - security_mac_signature
        - security_salted_mac_signature
        - security_unlock
        - transport_write
        - winpr_int_assert
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:1214,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/fastpath.c:1216,37'
          Dst:             bulk_compression_max_size
        - Src:             'libfreerdp/core/fastpath.c:1221,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/fastpath.c:1222,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/fastpath.c:1225,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/fastpath.c:1227,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:1232,20'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/fastpath.c:1234,3'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/fastpath.c:1234,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:1263,26'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/fastpath.c:1273,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/fastpath.c:1275,8'
          Dst:             bulk_compress
        - Src:             'libfreerdp/core/fastpath.c:1280,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1289,15'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/fastpath.c:1305,24'
          Dst:             fastpath_get_update_header_size
        - Src:             'libfreerdp/core/fastpath.c:1306,27'
          Dst:             fastpath_get_update_pdu_header_size
        - Src:             'libfreerdp/core/fastpath.c:1311,17'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/fastpath.c:1313,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/fastpath.c:1333,3'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/fastpath.c:1334,8'
          Dst:             fastpath_write_update_pdu_header
        - Src:             'libfreerdp/core/fastpath.c:1336,8'
          Dst:             fastpath_write_update_header
        - Src:             'libfreerdp/core/fastpath.c:1339,8'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/fastpath.c:1341,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/fastpath.c:1344,4'
          Dst:             Stream_Zero
        - Src:             'libfreerdp/core/fastpath.c:1349,4'
          Dst:             security_lock
        - Src:             'libfreerdp/core/fastpath.c:1353,17'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/fastpath.c:1355,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/fastpath.c:1359,10'
          Dst:             security_hmac_signature
        - Src:             'libfreerdp/core/fastpath.c:1362,10'
          Dst:             security_fips_encrypt
        - Src:             'libfreerdp/core/fastpath.c:1370,10'
          Dst:             security_salted_mac_signature
        - Src:             'libfreerdp/core/fastpath.c:1372,15'
          Dst:             security_mac_signature
        - Src:             'libfreerdp/core/fastpath.c:1374,21'
          Dst:             security_encrypt
        - Src:             'libfreerdp/core/fastpath.c:1380,3'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/fastpath.c:1382,7'
          Dst:             transport_write
        - Src:             'libfreerdp/core/fastpath.c:1389,4'
          Dst:             security_unlock
        - Src:             'libfreerdp/core/fastpath.c:1394,3'
          Dst:             Stream_Seek
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1292,3'
          Dst:             winpr_int_assert
    - functionName:    fastpath_update_pdu_init_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1182
      functionLinenumberEnd: 1185
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_New
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:1184,6'
          Dst:             Stream_New
    - functionName:    fastpath_update_pdu_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1177
      functionLinenumberEnd: 1178
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - transport_send_stream_init
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:1178,9'
          Dst:             transport_send_stream_init
    - functionName:    fastpath_send_input_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1172
      functionLinenumberEnd: 1173
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fastpath_send_multiple_input_pdu
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:1173,9'
          Dst:             fastpath_send_multiple_input_pdu
    - functionName:    fastpath_send_multiple_input_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1032
      functionLinenumberEnd: 1169
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         146
      ICount:          581
      EdgeCount:       169
      CyclomaticComplexity: 25
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_GetPosition
        - Stream_Pointer
        - Stream_Release
        - Stream_ResetPosition
        - Stream_SealLength
        - Stream_Seek
        - Stream_SetPosition
        - Stream_Write_UINT16_BE_unchecked
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - WLog_Print_dbg_tag
        - fastpath_get_sec_bytes
        - freerdp_settings_get_uint32
        - rdp_get_state
        - rdp_is_active_state
        - rdp_state_string
        - security_encrypt
        - security_fips_encrypt
        - security_hmac_signature
        - security_lock
        - security_mac_signature
        - security_salted_mac_signature
        - security_unlock
        - transport_write
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:1038,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1046,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1049,34'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/fastpath.c:1050,8'
          Dst:             rdp_is_active_state
        - Src:             'libfreerdp/core/fastpath.c:1052,4'
          Dst:             rdp_state_string
        - Src:             'libfreerdp/core/fastpath.c:1052,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:1066,19'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/fastpath.c:1070,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:1083,3'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/fastpath.c:1084,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1084,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1084,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/fastpath.c:1086,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/fastpath.c:1090,4'
          Dst:             security_lock
        - Src:             'libfreerdp/core/fastpath.c:1093,29'
          Dst:             fastpath_get_sec_bytes
        - Src:             'libfreerdp/core/fastpath.c:1097,26'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/fastpath.c:1100,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1101,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/fastpath.c:1109,5'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/fastpath.c:1110,5'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/fastpath.c:1111,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1111,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1111,5'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/fastpath.c:1113,10'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/fastpath.c:1116,71'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/fastpath.c:1116,10'
          Dst:             security_hmac_signature
        - Src:             'libfreerdp/core/fastpath.c:1123,10'
          Dst:             security_fips_encrypt
        - Src:             'libfreerdp/core/fastpath.c:1131,10'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/fastpath.c:1135,48'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/fastpath.c:1134,12'
          Dst:             security_salted_mac_signature
        - Src:             'libfreerdp/core/fastpath.c:1138,35'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/fastpath.c:1137,12'
          Dst:             security_mac_signature
        - Src:             'libfreerdp/core/fastpath.c:1140,18'
          Dst:             security_encrypt
        - Src:             'libfreerdp/core/fastpath.c:1151,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1152,8'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/fastpath.c:1154,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1154,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1154,3'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'libfreerdp/core/fastpath.c:1155,8'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/fastpath.c:1157,3'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/fastpath.c:1160,6'
          Dst:             transport_write
        - Src:             'libfreerdp/core/fastpath.c:1166,3'
          Dst:             security_unlock
        - Src:             'libfreerdp/core/fastpath.c:1167,2'
          Dst:             Stream_Release
    - functionName:    fastpath_get_sec_bytes
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 972
      functionLinenumberEnd: 988
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          58
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_settings_get_uint32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:982,7'
          Dst:             freerdp_settings_get_uint32
    - 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:    fastpath_input_pdu_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1017
      functionLinenumberEnd: 1028
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          120
      EdgeCount:       33
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - fastpath_input_pdu_init_header
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:1019,6'
          Dst:             fastpath_input_pdu_init_header
        - Src:             'libfreerdp/core/fastpath.c:1024,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1025,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1026,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1026,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:1026,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    fastpath_input_pdu_init_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 991
      functionLinenumberEnd: 1013
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          101
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_Seek
        - fastpath_get_sec_bytes
        - transport_send_stream_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:996,15'
          Dst:             transport_send_stream_init
        - Src:             'libfreerdp/core/fastpath.c:1001,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/fastpath.c:1011,17'
          Dst:             fastpath_get_sec_bytes
        - Src:             'libfreerdp/core/fastpath.c:1011,2'
          Dst:             Stream_Seek
    - functionName:    fastpath_recv_input_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 884
      functionLinenumberEnd: 943
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          181
      EdgeCount:       48
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Print_dbg_tag
        - fastpath_read_input_event_header
        - fastpath_recv_input_event_mouse
        - fastpath_recv_input_event_mousex
        - fastpath_recv_input_event_qoe
        - fastpath_recv_input_event_relmouse
        - fastpath_recv_input_event_scancode
        - fastpath_recv_input_event_sync
        - fastpath_recv_input_event_unicode
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/fastpath.c:894,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:888,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:889,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:891,7'
          Dst:             fastpath_read_input_event_header
        - Src:             'libfreerdp/core/fastpath.c:897,9'
          Dst:             fastpath_recv_input_event_scancode
        - Src:             'libfreerdp/core/fastpath.c:903,9'
          Dst:             fastpath_recv_input_event_mouse
        - Src:             'libfreerdp/core/fastpath.c:909,9'
          Dst:             fastpath_recv_input_event_mousex
        - Src:             'libfreerdp/core/fastpath.c:915,9'
          Dst:             fastpath_recv_input_event_sync
        - Src:             'libfreerdp/core/fastpath.c:921,9'
          Dst:             fastpath_recv_input_event_unicode
        - Src:             'libfreerdp/core/fastpath.c:927,9'
          Dst:             fastpath_recv_input_event_relmouse
        - Src:             'libfreerdp/core/fastpath.c:933,9'
          Dst:             fastpath_recv_input_event_qoe
        - Src:             'libfreerdp/core/fastpath.c:938,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    fastpath_recv_inputs
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 946
      functionLinenumberEnd: 969
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          109
      EdgeCount:       33
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - fastpath_recv_input_event
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:947,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:948,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:956,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/fastpath.c:959,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/fastpath.c:964,8'
          Dst:             fastpath_recv_input_event
    - functionName:    fastpath_recv_update_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 654
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          404
      EdgeCount:       101
      CyclomaticComplexity: 26
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Pointer
        - Stream_Seek
        - Stream_Write
        - WLog_Print_dbg_tag
        - bulk_decompress
        - fastpath_read_update_header
        - fastpath_recv_update
        - freerdp_settings_get_uint32
        - stream_read_u16_le
        - stream_read_u8
        - transport_get_context
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:539,7'
          Dst:             fastpath_read_update_header
        - Src:             'libfreerdp/core/fastpath.c:544,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/fastpath.c:547,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/fastpath.c:552,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/fastpath.c:555,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/fastpath.c:557,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/fastpath.c:561,33'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/fastpath.c:561,6'
          Dst:             bulk_decompress
        - Src:             'libfreerdp/core/fastpath.c:562,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/fastpath.c:566,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:570,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/fastpath.c:573,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/fastpath.c:579,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:583,12'
          Dst:             fastpath_recv_update
        - Src:             'libfreerdp/core/fastpath.c:587,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:594,28'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/fastpath.c:596,13'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/fastpath.c:597,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:598,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:601,7'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/fastpath.c:603,4'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/fastpath.c:603,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:614,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:625,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:636,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/fastpath.c:641,13'
          Dst:             fastpath_recv_update
        - Src:             'libfreerdp/core/fastpath.c:645,5'
          Dst:             WLog_Print_dbg_tag
    - functionName:    fastpath_recv_updates
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 657
      functionLinenumberEnd: 677
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          82
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_GetRemainingLength
        - WLog_Print_dbg_tag
        - fastpath_recv_update_data
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:660,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:661,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:662,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/fastpath.c:664,9'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/fastpath.c:666,7'
          Dst:             fastpath_recv_update_data
        - Src:             'libfreerdp/core/fastpath.c:668,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    fastpath_read_header_rdp
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/fastpath.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          121
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetPosition
        - per_read_length
        - stream_read_u8
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/fastpath.c:224,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/fastpath.c:227,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/fastpath.c:235,7'
          Dst:             per_read_length
        - Src:             'libfreerdp/core/fastpath.c:238,21'
          Dst:             Stream_GetPosition
    - 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:    3
      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:    winpr_Data_Write_UINT64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 286
      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
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:282,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/endian.h:284,3'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/include/winpr/endian.h:285,3'
          Dst:             winpr_Data_Write_UINT32
    - functionName:    Stream_Write_UINT64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1127
      functionLinenumberEnd: 1134
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT64
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1128,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1129,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1130,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1130,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1132,3'
          Dst:             winpr_Data_Write_UINT64
    - 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_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:    1
      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_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:    update_write_surfcmd_bitmap_header_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/surface.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          132
      EdgeCount:       42
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT64
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/surface.c:277,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/surface.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:280,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/surface.c:281,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:281,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:281,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/surface.c:282,2'
          Dst:             Stream_Write_UINT64
        - Src:             'libfreerdp/core/surface.c:283,2'
          Dst:             Stream_Write_UINT64
    - 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:    4
      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_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:    4
      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_Data_Get_UINT64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      size_t
      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:168,3'
          Dst:             winpr_int_assert
    - functionName:    stream_read_u64_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          64
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT64
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:294,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:295,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:295,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:297,20'
          Dst:             winpr_Data_Get_UINT64
        - Src:             'winpr/include/winpr/stream.h:299,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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:114,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:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    update_recv_surfcmd_bitmap_header_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/surface.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          76
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u32_le
        - stream_read_u64_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/surface.c:40,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/surface.c:43,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/surface.c:44,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/surface.c:45,2'
          Dst:             stream_read_u64_le
        - Src:             'libfreerdp/core/surface.c:46,2'
          Dst:             stream_read_u64_le
    - 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:    4
      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_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:    3
      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:    update_recv_surfcmd_bitmap_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/surface.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          206
      EdgeCount:       50
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Pointer
        - Stream_SafeSeekEx
        - Stream_Seek
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - update_recv_surfcmd_bitmap_header_ex
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/surface.c:55,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/surface.c:58,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/surface.c:59,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/surface.c:60,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/surface.c:61,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/surface.c:62,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/surface.c:63,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/surface.c:64,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/surface.c:68,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/surface.c:75,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/surface.c:81,8'
          Dst:             update_recv_surfcmd_bitmap_header_ex
        - Src:             'libfreerdp/core/surface.c:85,20'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/surface.c:86,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/surface.c:88,3'
          Dst:             WLog_Print_dbg_tag
    - 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:    8
      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:    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:    13
      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:    update_recv_surfcmd_is_rect_valid
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/surface.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          152
      EdgeCount:       36
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/surface.c:98,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:99,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:100,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:106,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/surface.c:114,29'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/surface.c:116,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/surface.c:119,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_write_surfcmd_frame_marker
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/surface.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          110
      EdgeCount:       45
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/surface.c:355,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/surface.c:358,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/surface.c:359,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:359,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:359,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/surface.c:360,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:360,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:360,2'
          Dst:             Stream_Write_UINT32_unchecked
    - 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:    9
      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:    update_write_surfcmd_bitmap_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/surface.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         114
      ICount:          363
      EdgeCount:       121
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - WLog_Print_dbg_tag
        - update_write_surfcmd_bitmap_header_ex
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/surface.c:292,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/surface.c:297,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/surface.c:300,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:300,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:300,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/surface.c:301,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:301,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:301,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/surface.c:302,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/surface.c:303,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:303,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:303,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/surface.c:304,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:304,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:304,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/surface.c:305,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:305,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:305,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/surface.c:306,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:306,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:306,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/surface.c:310,8'
          Dst:             update_write_surfcmd_bitmap_header_ex
        - Src:             'libfreerdp/core/surface.c:314,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/surface.c:317,2'
          Dst:             Stream_Write
    - functionName:    update_write_surfcmd_surface_bits
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/surface.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         402
      ICount:          1362
      EdgeCount:       447
      CyclomaticComplexity: 47
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - WLog_Print_dbg_tag
        - update_write_surfcmd_bitmap_ex
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/surface.c:328,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/surface.c:323,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/surface.c:326,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:336,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/surface.c:345,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:345,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:345,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:345,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:345,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:345,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:345,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:345,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:345,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/surface.c:346,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:346,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:346,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:346,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:346,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:346,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:346,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:346,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:346,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/surface.c:347,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:347,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:347,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:347,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:347,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:347,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:347,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:347,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:347,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/surface.c:348,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:348,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:348,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:348,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:348,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:348,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:348,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:348,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:348,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/surface.c:349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:349,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/surface.c:350,9'
          Dst:             update_write_surfcmd_bitmap_ex
    - functionName:    update_recv_surfcmd_frame_marker
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/surface.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          170
      EdgeCount:       44
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - stream_read_u16_le
        - stream_read_u32_le
        - update_cast
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/surface.c:187,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/surface.c:189,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:191,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/surface.c:194,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/surface.c:195,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/surface.c:196,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/surface.c:196,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/surface.c:202,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/surface.c:203,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/surface.c:203,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/surface.c:208,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:209,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/surface.c:211,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/surface.c:217,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.h:171,2'
          Dst:             winpr_int_assert
    - functionName:    update_recv_surfcmd_surface_bits
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/surface.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          222
      EdgeCount:       43
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - update_cast
        - update_recv_surfcmd_bitmap_ex
        - update_recv_surfcmd_is_rect_valid
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/surface.c:154,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/surface.c:132,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/surface.c:136,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:138,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/surface.c:142,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/surface.c:143,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/surface.c:144,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/surface.c:145,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/surface.c:147,7'
          Dst:             update_recv_surfcmd_is_rect_valid
        - Src:             'libfreerdp/core/surface.c:150,7'
          Dst:             update_recv_surfcmd_bitmap_ex
        - Src:             'libfreerdp/core/surface.c:173,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/surface.c:175,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    update_recv_surfcmds
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/surface.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          157
      EdgeCount:       34
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_ConstPointer
        - Stream_GetPosition
        - Stream_GetRemainingLength
        - WLog_Print_dbg_tag
        - pcap_add_record
        - pcap_flush
        - stream_read_u16_le
        - update_cast
        - update_recv_surfcmd_frame_marker
        - update_recv_surfcmd_surface_bits
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/surface.c:238,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/surface.c:227,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/surface.c:229,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/surface.c:231,9'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/surface.c:233,24'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/surface.c:234,22'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/surface.c:236,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/surface.c:242,10'
          Dst:             update_recv_surfcmd_surface_bits
        - Src:             'libfreerdp/core/surface.c:248,10'
          Dst:             update_recv_surfcmd_frame_marker
        - Src:             'libfreerdp/core/surface.c:254,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/surface.c:260,24'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/surface.c:262,9'
          Dst:             pcap_add_record
        - Src:             'libfreerdp/core/surface.c:264,4'
          Dst:             pcap_flush
    - functionName:    BIO_wait_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.h:97,9'
          Dst:             BIO_ctrl
    - functionName:    BIO_wait_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.h:103,9'
          Dst:             BIO_ctrl
    - functionName:    transport_bio_error_log
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 833
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          129
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - ERR_error_string_n
        - ERR_get_error
        - ERR_peek_error
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - __errno_location
        - winpr_int_assert
        - winpr_strerror
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:803,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:805,14'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/transport.c:808,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:811,6'
          Dst:             ERR_peek_error
        - Src:             'libfreerdp/core/transport.c:816,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:821,26'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/core/transport.c:819,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:825,19'
          Dst:             ERR_get_error
        - Src:             'libfreerdp/core/transport.c:829,3'
          Dst:             ERR_error_string_n
        - Src:             'libfreerdp/core/transport.c:830,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    ERR_peek_error
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ERR_get_error
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ERR_error_string_n
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,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_ResetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1358,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    transport_read_layer_bytes
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 923
      functionLinenumberEnd: 938
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          108
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_Pointer
        - Stream_Seek
        - WLog_Print_dbg_tag
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:931,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/transport.c:931,11'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/transport.c:936,2'
          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:    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:    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:    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:    1
      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:    where2str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          203
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - snprintf
        - winpr_str_append
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:117,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/transport.c:119,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/transport.c:121,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/transport.c:123,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/transport.c:125,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/transport.c:127,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/transport.c:129,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/transport.c:131,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/transport.c:133,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/transport.c:136,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/transport.c:137,2'
          Dst:             winpr_str_append
    - functionName:    transport_ssl_cb
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          254
      EdgeCount:       69
      CyclomaticComplexity: 11
      functionsReached:
        - SSL_alert_desc_string_long
        - SSL_alert_type_string_long
        - SSL_get_ex_data
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - nla_get_error
        - transport_get_context
        - where2str
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/transport.c:149,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:146,44'
          Dst:             SSL_get_ex_data
        - Src:             'libfreerdp/core/transport.c:147,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:153,33'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:153,10'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/transport.c:155,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:155,6'
          Dst:             where2str
        - Src:             'libfreerdp/core/transport.c:155,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:157,6'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:157,6'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/transport.c:165,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:165,5'
          Dst:             where2str
        - Src:             'libfreerdp/core/transport.c:165,5'
          Dst:             SSL_alert_type_string_long
        - Src:             'libfreerdp/core/transport.c:165,5'
          Dst:             SSL_alert_desc_string_long
        - Src:             'libfreerdp/core/transport.c:165,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:171,34'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:171,11'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/transport.c:175,15'
          Dst:             nla_get_error
        - Src:             'libfreerdp/core/transport.c:178,7'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:178,7'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/transport.c:185,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:185,5'
          Dst:             where2str
        - Src:             'libfreerdp/core/transport.c:185,5'
          Dst:             SSL_alert_type_string_long
        - Src:             'libfreerdp/core/transport.c:185,5'
          Dst:             SSL_alert_desc_string_long
        - Src:             'libfreerdp/core/transport.c:185,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:191,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:191,5'
          Dst:             where2str
        - Src:             'libfreerdp/core/transport.c:191,5'
          Dst:             SSL_alert_type_string_long
        - Src:             'libfreerdp/core/transport.c:191,5'
          Dst:             SSL_alert_desc_string_long
        - Src:             'libfreerdp/core/transport.c:191,5'
          Dst:             WLog_PrintTextMessage
    - functionName:    SSL_get_ex_data
      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:    transport_get_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1844
      functionLinenumberEnd: 1846
      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:    41
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1845,2'
          Dst:             winpr_int_assert
    - functionName:    SSL_alert_type_string_long
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_alert_desc_string_long
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - 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:    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:    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:    2
      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_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:    6
      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_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    transport_layer_bio_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2187
      functionLinenumberEnd: 2200
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_get_data
        - BIO_set_data
        - BIO_set_flags
        - BIO_set_init
        - transport_layer_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:2191,49'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/transport.c:2193,3'
          Dst:             transport_layer_free
        - Src:             'libfreerdp/core/transport.c:2195,2'
          Dst:             BIO_set_data
        - Src:             'libfreerdp/core/transport.c:2196,2'
          Dst:             BIO_set_init
        - Src:             'libfreerdp/core/transport.c:2197,2'
          Dst:             BIO_set_flags
    - functionName:    transport_layer_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2019
      functionLinenumberEnd: 2028
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_layer_bio_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2178
      functionLinenumberEnd: 2183
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_set_flags
        - BIO_set_init
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:2179,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:2181,2'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/transport.c:2182,2'
          Dst:             BIO_set_init
    - functionName:    transport_layer_bio_ctrl
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2104
      functionLinenumberEnd: 2175
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         89
      ICount:          395
      EdgeCount:       103
      CyclomaticComplexity: 16
      functionsReached:
        - BIO_get_data
        - BIO_get_shutdown
        - BIO_set_shutdown
        - WLog_Print_dbg_tag
        - __errno_location
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/transport.c:2112,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:2105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:2107,49'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/transport.c:2115,23'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/transport.c:2126,13'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/transport.c:2126,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:2126,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:2131,5'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/transport.c:2142,13'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/transport.c:2142,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:2142,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:2147,5'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/transport.c:2156,13'
          Dst:             BIO_get_shutdown
        - Src:             'libfreerdp/core/transport.c:2160,4'
          Dst:             BIO_set_shutdown
    - functionName:    transport_layer_bio_gets
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2099
      functionLinenumberEnd: 2100
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_layer_bio_puts
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2093
      functionLinenumberEnd: 2094
      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:    transport_layer_bio_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2064
      functionLinenumberEnd: 2090
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          135
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - BIO_set_flags
        - WLog_Print_dbg_tag
        - __errno_location
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/transport.c:2080,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:2070,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:2072,49'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/transport.c:2076,2'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/transport.c:2077,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/transport.c:2078,21'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/transport.c:2080,10'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/transport.c:2083,4'
          Dst:             BIO_set_flags
    - functionName:    transport_layer_bio_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2031
      functionLinenumberEnd: 2061
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          158
      EdgeCount:       40
      CyclomaticComplexity: 9
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - BIO_set_flags
        - WLog_Print_dbg_tag
        - __errno_location
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/transport.c:2051,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:2037,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:2039,49'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/transport.c:2043,2'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/transport.c:2045,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/transport.c:2046,21'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/transport.c:2049,3'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/transport.c:2051,10'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/transport.c:2054,4'
          Dst:             BIO_set_flags
    - functionName:    BIO_s_transport_layer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2203
      functionLinenumberEnd: 2221
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_meth_new
        - BIO_meth_set_create
        - BIO_meth_set_ctrl
        - BIO_meth_set_destroy
        - BIO_meth_set_gets
        - BIO_meth_set_puts
        - BIO_meth_set_read
        - BIO_meth_set_write
        - transport_layer_bio_ctrl
        - transport_layer_bio_free
        - transport_layer_bio_gets
        - transport_layer_bio_new
        - transport_layer_bio_puts
        - transport_layer_bio_read
        - transport_layer_bio_write
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:2208,23'
          Dst:             BIO_meth_new
        - Src:             'libfreerdp/core/transport.c:2211,3'
          Dst:             BIO_meth_set_write
        - Src:             'libfreerdp/core/transport.c:2211,3'
          Dst:             transport_layer_bio_write
        - Src:             'libfreerdp/core/transport.c:2212,3'
          Dst:             BIO_meth_set_read
        - Src:             'libfreerdp/core/transport.c:2212,3'
          Dst:             transport_layer_bio_read
        - Src:             'libfreerdp/core/transport.c:2213,3'
          Dst:             BIO_meth_set_puts
        - Src:             'libfreerdp/core/transport.c:2213,3'
          Dst:             transport_layer_bio_puts
        - Src:             'libfreerdp/core/transport.c:2214,3'
          Dst:             BIO_meth_set_gets
        - Src:             'libfreerdp/core/transport.c:2214,3'
          Dst:             transport_layer_bio_gets
        - Src:             'libfreerdp/core/transport.c:2215,3'
          Dst:             BIO_meth_set_ctrl
        - Src:             'libfreerdp/core/transport.c:2215,3'
          Dst:             transport_layer_bio_ctrl
        - Src:             'libfreerdp/core/transport.c:2216,3'
          Dst:             BIO_meth_set_create
        - Src:             'libfreerdp/core/transport.c:2216,3'
          Dst:             transport_layer_bio_new
        - Src:             'libfreerdp/core/transport.c:2217,3'
          Dst:             BIO_meth_set_destroy
        - Src:             'libfreerdp/core/transport.c:2217,3'
          Dst:             transport_layer_bio_free
    - functionName:    transport_layer_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1999
      functionLinenumberEnd: 2016
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:2000,55'
          Dst:             calloc
        - Src:             'libfreerdp/core/transport.c:2006,33'
          Dst:             calloc
    - functionName:    transport_set_early_user_auth_mode
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1991
      functionLinenumberEnd: 1995
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          62
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1992,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1994,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1994,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    transport_io_callback_set_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1982
      functionLinenumberEnd: 1988
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          54
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - ResetEvent
        - SetEvent
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1983,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1986,10'
          Dst:             ResetEvent
        - Src:             'libfreerdp/core/transport.c:1987,9'
          Dst:             SetEvent
    - functionName:    transport_get_front_bio
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1972
      functionLinenumberEnd: 1978
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          49
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_get_event
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1974,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1975,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1977,2'
          Dst:             BIO_get_event
    - functionName:    BIO_get_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.h:70,9'
          Dst:             BIO_ctrl
    - functionName:    transport_tcp_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1963
      functionLinenumberEnd: 1967
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          96
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - transport_get_context
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1964,24'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:1965,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1966,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1967,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    transport_have_more_bytes_to_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1957
      functionLinenumberEnd: 1959
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1958,2'
          Dst:             winpr_int_assert
    - functionName:    transport_set_blocking
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1950
      functionLinenumberEnd: 1953
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1951,2'
          Dst:             winpr_int_assert
    - functionName:    transport_get_blocking
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1944
      functionLinenumberEnd: 1946
      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:             'libfreerdp/core/transport.c:1945,2'
          Dst:             winpr_int_assert
    - functionName:    transport_set_recv_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1936
      functionLinenumberEnd: 1940
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1937,2'
          Dst:             winpr_int_assert
    - functionName:    transport_set_connected_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1930
      functionLinenumberEnd: 1932
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - SetEvent
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1931,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1932,9'
          Dst:             SetEvent
    - functionName:    transport_set_layer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1923
      functionLinenumberEnd: 1926
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1924,2'
          Dst:             winpr_int_assert
    - functionName:    transport_get_layer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1917
      functionLinenumberEnd: 1919
      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:             'libfreerdp/core/transport.c:1918,2'
          Dst:             winpr_int_assert
    - functionName:    transport_get_bytes_sent
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1907
      functionLinenumberEnd: 1913
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1909,2'
          Dst:             winpr_int_assert
    - functionName:    transport_take_from_pool
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1899
      functionLinenumberEnd: 1904
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - StreamPool_Take
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1900,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1903,9'
          Dst:             StreamPool_Take
    - functionName:    transport_get_tsg
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1893
      functionLinenumberEnd: 1895
      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:             'libfreerdp/core/transport.c:1894,2'
          Dst:             winpr_int_assert
    - functionName:    transport_set_tsg
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1885
      functionLinenumberEnd: 1889
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - tsg_free
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1886,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1887,2'
          Dst:             tsg_free
    - functionName:    transport_get_tls
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1879
      functionLinenumberEnd: 1881
      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:             'libfreerdp/core/transport.c:1880,2'
          Dst:             winpr_int_assert
    - functionName:    transport_set_tls
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1871
      functionLinenumberEnd: 1875
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_tls_free
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1872,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1873,2'
          Dst:             freerdp_tls_free
    - functionName:    transport_get_nla
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1865
      functionLinenumberEnd: 1867
      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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1866,2'
          Dst:             winpr_int_assert
    - functionName:    transport_set_nla
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1857
      functionLinenumberEnd: 1861
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - nla_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1858,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1859,2'
          Dst:             nla_free
    - functionName:    freerdp_get_transport
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1850
      functionLinenumberEnd: 1853
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          47
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1851,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1852,2'
          Dst:             winpr_int_assert
    - functionName:    transport_get_io_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1837
      functionLinenumberEnd: 1841
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          23
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_set_io_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1828
      functionLinenumberEnd: 1834
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          35
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1786
      functionLinenumberEnd: 1825
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          191
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - CloseHandle
        - DeleteCriticalSection
        - EnterCriticalSection
        - LeaveCriticalSection
        - StreamPool_Free
        - StreamPool_WaitForReturn
        - Stream_Release
        - WLog_Discard
        - nla_free
        - transport_disconnect
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1790,2'
          Dst:             transport_disconnect
        - Src:             'libfreerdp/core/transport.c:1793,3'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/transport.c:1796,3'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/transport.c:1799,3'
          Dst:             LeaveCriticalSection
        - Src:             'libfreerdp/core/transport.c:1802,9'
          Dst:             StreamPool_WaitForReturn
        - Src:             'libfreerdp/core/transport.c:1805,3'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/transport.c:1808,3'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/transport.c:1810,2'
          Dst:             nla_free
        - Src:             'libfreerdp/core/transport.c:1811,2'
          Dst:             StreamPool_Free
        - Src:             'libfreerdp/core/transport.c:1812,8'
          Dst:             CloseHandle
        - Src:             'libfreerdp/core/transport.c:1813,8'
          Dst:             CloseHandle
        - Src:             'libfreerdp/core/transport.c:1814,8'
          Dst:             CloseHandle
        - Src:             'libfreerdp/core/transport.c:1817,3'
          Dst:             LeaveCriticalSection
        - Src:             'libfreerdp/core/transport.c:1818,2'
          Dst:             DeleteCriticalSection
        - Src:             'libfreerdp/core/transport.c:1821,3'
          Dst:             LeaveCriticalSection
        - Src:             'libfreerdp/core/transport.c:1822,2'
          Dst:             DeleteCriticalSection
        - Src:             'libfreerdp/core/transport.c:1823,2'
          Dst:             WLog_Discard
    - functionName:    transport_disconnect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1660
      functionLinenumberEnd: 1664
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1663,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    transport_default_attach_layer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1607
      functionLinenumberEnd: 1633
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          77
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - BIO_free_all
        - BIO_new
        - BIO_push
        - BIO_s_buffered_socket
        - BIO_s_transport_layer
        - BIO_set_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1608,26'
          Dst:             BIO_s_transport_layer
        - Src:             'libfreerdp/core/transport.c:1608,18'
          Dst:             BIO_new
        - Src:             'libfreerdp/core/transport.c:1613,30'
          Dst:             BIO_s_buffered_socket
        - Src:             'libfreerdp/core/transport.c:1613,22'
          Dst:             BIO_new
        - Src:             'libfreerdp/core/transport.c:1617,17'
          Dst:             BIO_push
        - Src:             'libfreerdp/core/transport.c:1622,3'
          Dst:             BIO_set_data
        - Src:             'libfreerdp/core/transport.c:1630,3'
          Dst:             BIO_free_all
    - functionName:    BIO_push
      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:    transport_default_connect_layer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1588
      functionLinenumberEnd: 1592
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_tcp_connect_layer
        - transport_get_context
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1589,24'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:1590,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1592,9'
          Dst:             freerdp_tcp_connect_layer
    - functionName:    transport_default_set_blocking_mode
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1558
      functionLinenumberEnd: 1570
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          66
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_set_nonblock
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1559,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1565,8'
          Dst:             BIO_set_nonblock
    - functionName:    BIO_set_nonblock
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.h:80,9'
          Dst:             BIO_ctrl
    - functionName:    transport_default_get_public_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1329
      functionLinenumberEnd: 1338
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - transport_get_tls
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1330,16'
          Dst:             transport_get_tls
    - functionName:    transport_read_layer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 836
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         86
      ICount:          370
      EdgeCount:       103
      CyclomaticComplexity: 19
      functionsReached:
        - BIO_read
        - BIO_test_flags
        - BIO_wait_read
        - ERR_clear_error
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - freerdp_shall_disconnect_context
        - transport_bio_error_log
        - transport_get_context
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:841,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:843,12'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:844,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:847,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:852,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/transport.c:852,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/transport.c:860,3'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/transport.c:861,16'
          Dst:             BIO_read
        - Src:             'libfreerdp/core/transport.c:863,7'
          Dst:             freerdp_shall_disconnect_context
        - Src:             'libfreerdp/core/transport.c:868,33'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/transport.c:873,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:873,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:877,5'
          Dst:             transport_bio_error_log
        - Src:             'libfreerdp/core/transport.c:879,5'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/transport.c:879,5'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/transport.c:889,8'
          Dst:             BIO_wait_read
        - Src:             'libfreerdp/core/transport.c:891,5'
          Dst:             transport_bio_error_log
        - Src:             'libfreerdp/core/transport.c:902,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:902,19'
          Dst:             winpr_int_assert
    - functionName:    transport_default_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1207
      functionLinenumberEnd: 1320
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         89
      ICount:          419
      EdgeCount:       110
      CyclomaticComplexity: 23
      functionsReached:
        - BIO_ctrl
        - BIO_test_flags
        - BIO_wait_write
        - BIO_write
        - BIO_write_blocked
        - ERR_clear_error
        - EnterCriticalSection
        - LeaveCriticalSection
        - Stream_AddRef
        - Stream_Buffer
        - Stream_ConstPointer
        - Stream_GetPosition
        - Stream_Release
        - Stream_ResetPosition
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintMessage
        - WLog_PrintTextMessage
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - transport_bio_error_log
        - transport_get_context
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1209,24'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:1211,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1212,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1217,2'
          Dst:             Stream_AddRef
        - Src:             'libfreerdp/core/transport.c:1223,2'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/transport.c:1228,19'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/transport.c:1230,3'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/transport.c:1235,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1235,4'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/transport.c:1235,4'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/core/transport.c:1240,4'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/transport.c:1242,44'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/transport.c:1242,13'
          Dst:             BIO_write
        - Src:             'libfreerdp/core/transport.c:1250,10'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/transport.c:1252,6'
          Dst:             transport_bio_error_log
        - Src:             'libfreerdp/core/transport.c:1259,6'
          Dst:             transport_bio_error_log
        - Src:             'libfreerdp/core/transport.c:1263,9'
          Dst:             BIO_wait_write
        - Src:             'libfreerdp/core/transport.c:1265,6'
          Dst:             transport_bio_error_log
        - Src:             'libfreerdp/core/transport.c:1273,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1276,12'
          Dst:             BIO_write_blocked
        - Src:             'libfreerdp/core/transport.c:1278,10'
          Dst:             BIO_wait_write
        - Src:             'libfreerdp/core/transport.c:1280,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1280,7'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:1285,10'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/core/transport.c:1287,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1287,7'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:1302,4'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/transport.c:1313,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/transport.c:1313,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/transport.c:1316,2'
          Dst:             LeaveCriticalSection
        - Src:             'libfreerdp/core/transport.c:1318,2'
          Dst:             Stream_Release
    - functionName:    BIO_write_blocked
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.h:92,9'
          Dst:             BIO_ctrl
    - functionName:    transport_default_read_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1114
      functionLinenumberEnd: 1196
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         87
      ICount:          384
      EdgeCount:       109
      CyclomaticComplexity: 24
      functionsReached:
        - Stream_Buffer
        - Stream_EnsureCapacity
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Length
        - Stream_ResetPosition
        - Stream_SealLength
        - Stream_Write_UINT8_unchecked
        - WLog_IsLevelActive
        - WLog_PrintMessage
        - transport_parse_pdu
        - transport_read_layer
        - transport_read_layer_bytes
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1120,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1121,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1130,23'
          Dst:             transport_read_layer
        - Src:             'libfreerdp/core/transport.c:1133,9'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/transport.c:1135,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1135,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1135,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/transport.c:1140,8'
          Dst:             Stream_EnsureCapacity
        - Src:             'libfreerdp/core/transport.c:1142,22'
          Dst:             transport_read_layer_bytes
        - Src:             'libfreerdp/core/transport.c:1149,12'
          Dst:             transport_parse_pdu
        - Src:             'libfreerdp/core/transport.c:1152,9'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/transport.c:1154,17'
          Dst:             transport_read_layer_bytes
        - Src:             'libfreerdp/core/transport.c:1159,13'
          Dst:             transport_parse_pdu
        - Src:             'libfreerdp/core/transport.c:1168,8'
          Dst:             Stream_EnsureCapacity
        - Src:             'libfreerdp/core/transport.c:1171,14'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/transport.c:1176,13'
          Dst:             transport_read_layer_bytes
        - Src:             'libfreerdp/core/transport.c:1185,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/transport.c:1186,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1186,4'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/transport.c:1186,4'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/core/transport.c:1190,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/transport.c:1191,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/transport.c:1192,21'
          Dst:             Stream_Length
    - functionName:    transport_parse_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1080
      functionLinenumberEnd: 1111
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         66
      ICount:          268
      EdgeCount:       80
      CyclomaticComplexity: 16
      functionsReached:
        - Stream_Length
        - Stream_SealLength
        - parse_default_mode_pdu
        - parse_nla_mode_pdu
        - rdstls_parse_pdu
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1092,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/transport.c:1094,15'
          Dst:             parse_nla_mode_pdu
        - Src:             'libfreerdp/core/transport.c:1096,15'
          Dst:             rdstls_parse_pdu
        - Src:             'libfreerdp/core/transport.c:1098,15'
          Dst:             parse_default_mode_pdu
        - Src:             'libfreerdp/core/transport.c:1103,21'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/transport.c:1104,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1104,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1108,23'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1108,23'
          Dst:             winpr_int_assert
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:1325,3'
          Dst:             winpr_int_assert
    - functionName:    parse_nla_mode_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 960
      functionLinenumberEnd: 1016
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          187
      EdgeCount:       48
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_Buffer
        - Stream_GetRemainingLength
        - Stream_Length
        - Stream_StaticConstInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_be
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:963,48'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/transport.c:963,71'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/transport.c:963,15'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/core/transport.c:971,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/transport.c:973,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/transport.c:978,7'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/transport.c:980,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/transport.c:986,9'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/transport.c:988,5'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/transport.c:996,9'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/transport.c:998,5'
          Dst:             stream_read_u16_be
        - Src:             'libfreerdp/core/transport.c:1004,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1004,5'
          Dst:             WLog_PrintTextMessage
    - functionName:    parse_default_mode_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1019
      functionLinenumberEnd: 1077
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         50
      ICount:          233
      EdgeCount:       62
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_Buffer
        - Stream_GetRemainingLength
        - Stream_Length
        - Stream_Seek
        - Stream_StaticConstInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_be
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1022,48'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/transport.c:1022,71'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/transport.c:1022,15'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/core/transport.c:1025,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/transport.c:1027,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/transport.c:1032,7'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/transport.c:1034,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/transport.c:1035,3'
          Dst:             stream_read_u16_be
        - Src:             'libfreerdp/core/transport.c:1041,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1041,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:1049,7'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/transport.c:1051,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/transport.c:1055,8'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/transport.c:1057,4'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/transport.c:1070,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1070,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    transport_default_disconnect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1667
      functionLinenumberEnd: 1710
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          143
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - BIO_free_all
        - EnterCriticalSection
        - LeaveCriticalSection
        - freerdp_tls_free
        - rdg_free
        - tsg_free
        - wst_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1673,2'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/transport.c:1674,2'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/transport.c:1677,3'
          Dst:             freerdp_tls_free
        - Src:             'libfreerdp/core/transport.c:1683,4'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/core/transport.c:1688,3'
          Dst:             tsg_free
        - Src:             'libfreerdp/core/transport.c:1694,3'
          Dst:             rdg_free
        - Src:             'libfreerdp/core/transport.c:1700,3'
          Dst:             wst_free
        - Src:             'libfreerdp/core/transport.c:1707,2'
          Dst:             LeaveCriticalSection
        - Src:             'libfreerdp/core/transport.c:1708,2'
          Dst:             LeaveCriticalSection
    - functionName:    transport_default_attach
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          157
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - BIO_free_all
        - BIO_int_ctrl
        - BIO_new
        - BIO_push
        - BIO_s_buffered_socket
        - BIO_s_simple_socket
        - EnterCriticalSection
        - LeaveCriticalSection
        - WLog_Print_dbg_tag
        - closesocket
        - freerdp_tcp_set_keep_alive_mode
        - transport_get_context
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:219,24'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:223,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/transport.c:228,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:232,8'
          Dst:             freerdp_tcp_set_keep_alive_mode
        - Src:             'libfreerdp/core/transport.c:235,23'
          Dst:             BIO_s_simple_socket
        - Src:             'libfreerdp/core/transport.c:235,15'
          Dst:             BIO_new
        - Src:             'libfreerdp/core/transport.c:241,24'
          Dst:             BIO_s_buffered_socket
        - Src:             'libfreerdp/core/transport.c:241,16'
          Dst:             BIO_new
        - Src:             'libfreerdp/core/transport.c:252,3'
          Dst:             BIO_int_ctrl
        - Src:             'libfreerdp/core/transport.c:253,17'
          Dst:             BIO_push
        - Src:             'libfreerdp/core/transport.c:257,2'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/transport.c:258,2'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/transport.c:260,2'
          Dst:             LeaveCriticalSection
        - Src:             'libfreerdp/core/transport.c:261,2'
          Dst:             LeaveCriticalSection
        - Src:             'libfreerdp/core/transport.c:267,3'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/core/transport.c:269,3'
          Dst:             closesocket
    - functionName:    BIO_int_ctrl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_default_accept_tls
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 713
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          99
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_tls_accept
        - freerdp_tls_new
        - transport_get_context
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:695,24'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:698,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:701,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:704,20'
          Dst:             freerdp_tls_new
        - Src:             'libfreerdp/core/transport.c:708,7'
          Dst:             freerdp_tls_accept
    - functionName:    transport_default_connect_tls
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         78
      ICount:          342
      EdgeCount:       91
      CyclomaticComplexity: 15
      functionsReached:
        - BIO_callback_ctrl
        - SSL_set_ex_data
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - freerdp_tls_connect
        - freerdp_tls_new
        - transport_get_context
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:329,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:331,12'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:332,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:335,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:337,14'
          Dst:             freerdp_tls_new
        - Src:             'libfreerdp/core/transport.c:349,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:349,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:355,14'
          Dst:             freerdp_tls_connect
        - Src:             'libfreerdp/core/transport.c:361,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/transport.c:361,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/transport.c:365,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/transport.c:365,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/transport.c:384,2'
          Dst:             BIO_callback_ctrl
        - Src:             'libfreerdp/core/transport.c:385,2'
          Dst:             SSL_set_ex_data
        - Src:             'libfreerdp/core/transport.c:389,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:389,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    BIO_callback_ctrl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_set_ex_data
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1713
      functionLinenumberEnd: 1783
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         39
      ICount:          257
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - CreateEventA
        - InitializeCriticalSectionAndSpinCount
        - StreamPool_New
        - StreamPool_Take
        - WLog_Create
        - WLog_GetRoot
        - calloc
        - transport_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1714,43'
          Dst:             calloc
        - Src:             'libfreerdp/core/transport.c:1716,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1720,36'
          Dst:             WLog_GetRoot
        - Src:             'libfreerdp/core/transport.c:1720,19'
          Dst:             WLog_Create
        - Src:             'libfreerdp/core/transport.c:1726,28'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'libfreerdp/core/transport.c:1727,29'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'libfreerdp/core/transport.c:1731,27'
          Dst:             StreamPool_New
        - Src:             'libfreerdp/core/transport.c:1737,29'
          Dst:             StreamPool_Take
        - Src:             'libfreerdp/core/transport.c:1742,30'
          Dst:             CreateEventA
        - Src:             'libfreerdp/core/transport.c:1747,27'
          Dst:             CreateEventA
        - Src:             'libfreerdp/core/transport.c:1752,23'
          Dst:             CreateEventA
        - Src:             'libfreerdp/core/transport.c:1780,2'
          Dst:             transport_free
    - functionName:    transport_set_gateway_enabled
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1636
      functionLinenumberEnd: 1639
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1637,2'
          Dst:             winpr_int_assert
    - functionName:    transport_set_blocking_mode
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1551
      functionLinenumberEnd: 1554
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          69
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1552,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1554,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    transport_check_fds
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1475
      functionLinenumberEnd: 1548
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         59
      ICount:          270
      EdgeCount:       70
      CyclomaticComplexity: 13
      functionsReached:
        - ResetEvent
        - SetEvent
        - StreamPool_Take
        - Stream_Release
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - state_run_failed
        - state_run_result_string
        - transport_get_context
        - transport_read_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1479,24'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:1481,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1485,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1485,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:1486,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/transport.c:1486,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/transport.c:1499,16'
          Dst:             transport_read_pdu
        - Src:             'libfreerdp/core/transport.c:1502,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1502,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:1507,10'
          Dst:             ResetEvent
        - Src:             'libfreerdp/core/transport.c:1513,29'
          Dst:             StreamPool_Take
        - Src:             'libfreerdp/core/transport.c:1516,3'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/transport.c:1526,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1528,2'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/transport.c:1530,6'
          Dst:             state_run_failed
        - Src:             'libfreerdp/core/transport.c:1533,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1533,3'
          Dst:             state_run_result_string
        - Src:             'libfreerdp/core/transport.c:1533,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:1545,9'
          Dst:             SetEvent
    - functionName:    transport_read_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 953
      functionLinenumberEnd: 957
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:956,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    transport_drain_output_buffer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1457
      functionLinenumberEnd: 1472
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          85
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_ctrl
        - BIO_write_blocked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1460,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1461,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1462,6'
          Dst:             BIO_write_blocked
        - Src:             'libfreerdp/core/transport.c:1464,7'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/core/transport.c:1467,19'
          Dst:             BIO_write_blocked
    - functionName:    transport_is_write_blocked
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1450
      functionLinenumberEnd: 1453
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          49
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_write_blocked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1451,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1452,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1453,9'
          Dst:             BIO_write_blocked
    - functionName:    transport_get_event_handles
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1341
      functionLinenumberEnd: 1425
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         81
      ICount:          361
      EdgeCount:       99
      CyclomaticComplexity: 20
      functionsReached:
        - BIO_get_event
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdg_get_event_handles
        - tsg_get_event_handles
        - winpr_int_assert
        - wst_get_event_handles
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1344,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1345,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1346,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1352,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1352,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:1372,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1372,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:1381,9'
          Dst:             BIO_get_event
        - Src:             'libfreerdp/core/transport.c:1383,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1383,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:1395,8'
          Dst:             rdg_get_event_handles
        - Src:             'libfreerdp/core/transport.c:1405,8'
          Dst:             tsg_get_event_handles
        - Src:             'libfreerdp/core/transport.c:1415,8'
          Dst:             wst_get_event_handles
    - functionName:    transport_get_public_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1323
      functionLinenumberEnd: 1324
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1324,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    transport_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1199
      functionLinenumberEnd: 1204
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1203,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    transport_accept_rdstls
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 757
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          157
      EdgeCount:       41
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - freerdp_tls_send_alert
        - freerdp_tls_set_alert_code
        - rdstls_authenticate
        - rdstls_free
        - rdstls_new
        - transport_get_context
        - transport_set_rdstls_mode
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:762,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:764,12'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:765,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:767,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/transport.c:770,11'
          Dst:             rdstls_new
        - Src:             'libfreerdp/core/transport.c:774,2'
          Dst:             transport_set_rdstls_mode
        - Src:             'libfreerdp/core/transport.c:776,6'
          Dst:             rdstls_authenticate
        - Src:             'libfreerdp/core/transport.c:778,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:778,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:779,3'
          Dst:             freerdp_tls_set_alert_code
        - Src:             'libfreerdp/core/transport.c:781,3'
          Dst:             freerdp_tls_send_alert
        - Src:             'libfreerdp/core/transport.c:785,2'
          Dst:             transport_set_rdstls_mode
        - Src:             'libfreerdp/core/transport.c:788,2'
          Dst:             rdstls_free
    - functionName:    transport_set_rdstls_mode
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1648
      functionLinenumberEnd: 1651
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1649,2'
          Dst:             winpr_int_assert
    - functionName:    transport_accept_nla
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 716
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         38
      ICount:          189
      EdgeCount:       45
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - freerdp_tls_send_alert
        - freerdp_tls_set_alert_code
        - nla_authenticate
        - nla_free
        - nla_new
        - transport_get_context
        - transport_set_nla_mode
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:717,24'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:720,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:723,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:725,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/transport.c:735,20'
          Dst:             nla_new
        - Src:             'libfreerdp/core/transport.c:736,3'
          Dst:             transport_set_nla_mode
        - Src:             'libfreerdp/core/transport.c:739,6'
          Dst:             nla_authenticate
        - Src:             'libfreerdp/core/transport.c:741,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:741,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:742,3'
          Dst:             transport_set_nla_mode
        - Src:             'libfreerdp/core/transport.c:743,3'
          Dst:             nla_free
        - Src:             'libfreerdp/core/transport.c:745,3'
          Dst:             freerdp_tls_set_alert_code
        - Src:             'libfreerdp/core/transport.c:747,3'
          Dst:             freerdp_tls_send_alert
        - Src:             'libfreerdp/core/transport.c:752,2'
          Dst:             transport_set_nla_mode
    - functionName:    transport_set_nla_mode
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1642
      functionLinenumberEnd: 1645
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1643,2'
          Dst:             winpr_int_assert
    - functionName:    transport_accept_tls
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 687
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:690,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    transport_accept_rdp
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 681
      functionLinenumberEnd: 682
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_connect_childsession
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 669
      functionLinenumberEnd: 678
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - createChildSessionBio
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:670,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:672,24'
          Dst:             createChildSessionBio
    - functionName:    transport_attach_layer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1596
      functionLinenumberEnd: 1603
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          119
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1597,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1598,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1600,18'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/transport.c:1602,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1602,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    transport_connect_layer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1574
      functionLinenumberEnd: 1582
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          115
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1575,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:1578,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/transport.c:1580,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:1580,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    transport_can_retry
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       11
      CyclomaticComplexity: 7
      functionsReached:
        - freerdp_get_last_error
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/transport.c:526,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:526,10'
          Dst:             freerdp_get_last_error
    - functionName:    transport_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         111
      ICount:          524
      EdgeCount:       131
      CyclomaticComplexity: 22
      functionsReached:
        - BIO_set_nonblock
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_set_last_error_ex
        - proxy_connect
        - proxy_prepare
        - rdg_connect
        - rdg_free
        - rdg_get_front_bio_and_take_ownership
        - rdg_new
        - transport_attach_layer
        - transport_can_retry
        - transport_connect_layer
        - transport_get_context
        - transport_layer_free
        - tsg_connect
        - tsg_free
        - tsg_get_bio
        - tsg_new
        - winpr_int_assert
        - wst_connect
        - wst_free
        - wst_get_front_bio_and_take_ownership
        - wst_new
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:538,24'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:540,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:541,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:544,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:552,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:553,21'
          Dst:             wst_new
        - Src:             'libfreerdp/core/transport.c:557,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:557,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:561,13'
          Dst:             wst_connect
        - Src:             'libfreerdp/core/transport.c:565,27'
          Dst:             wst_get_front_bio_and_take_ownership
        - Src:             'libfreerdp/core/transport.c:566,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:567,5'
          Dst:             BIO_set_nonblock
        - Src:             'libfreerdp/core/transport.c:573,5'
          Dst:             wst_free
        - Src:             'libfreerdp/core/transport.c:577,7'
          Dst:             transport_can_retry
        - Src:             'libfreerdp/core/transport.c:579,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:580,21'
          Dst:             rdg_new
        - Src:             'libfreerdp/core/transport.c:584,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:584,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:588,13'
          Dst:             rdg_connect
        - Src:             'libfreerdp/core/transport.c:592,27'
          Dst:             rdg_get_front_bio_and_take_ownership
        - Src:             'libfreerdp/core/transport.c:593,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:594,5'
          Dst:             BIO_set_nonblock
        - Src:             'libfreerdp/core/transport.c:600,5'
          Dst:             rdg_free
        - Src:             'libfreerdp/core/transport.c:605,7'
          Dst:             transport_can_retry
        - Src:             'libfreerdp/core/transport.c:608,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:609,21'
          Dst:             tsg_new
        - Src:             'libfreerdp/core/transport.c:615,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/transport.c:616,13'
          Dst:             tsg_connect
        - Src:             'libfreerdp/core/transport.c:620,27'
          Dst:             tsg_get_bio
        - Src:             'libfreerdp/core/transport.c:626,5'
          Dst:             tsg_free
        - Src:             'libfreerdp/core/transport.c:638,7'
          Dst:             proxy_prepare
        - Src:             'libfreerdp/core/transport.c:642,12'
          Dst:             transport_connect_layer
        - Src:             'libfreerdp/core/transport.c:644,12'
          Dst:             transport_connect_layer
        - Src:             'libfreerdp/core/transport.c:649,8'
          Dst:             transport_attach_layer
        - Src:             'libfreerdp/core/transport.c:651,4'
          Dst:             transport_layer_free
        - Src:             'libfreerdp/core/transport.c:657,9'
          Dst:             proxy_connect
    - functionName:    transport_set_aad_mode
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1654
      functionLinenumberEnd: 1657
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:1655,2'
          Dst:             winpr_int_assert
    - functionName:    transport_connect_aad
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          170
      EdgeCount:       51
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - aad_client_begin
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - rdp_client_transition_to_state
        - transport_connect_tls
        - transport_get_context
        - transport_set_aad_mode
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:491,12'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:495,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:498,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:500,7'
          Dst:             transport_connect_tls
        - Src:             'libfreerdp/core/transport.c:509,2'
          Dst:             transport_set_aad_mode
        - Src:             'libfreerdp/core/transport.c:511,6'
          Dst:             aad_client_begin
        - Src:             'libfreerdp/core/transport.c:513,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:513,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:515,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/transport.c:515,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/transport.c:517,3'
          Dst:             transport_set_aad_mode
        - Src:             'libfreerdp/core/transport.c:521,9'
          Dst:             rdp_client_transition_to_state
    - functionName:    transport_connect_tls
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          141
      EdgeCount:       34
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - transport_get_context
        - utils_authenticate
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/core/transport.c:305,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:297,24'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:300,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:305,11'
          Dst:             utils_authenticate
        - Src:             'libfreerdp/core/transport.c:312,5'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/transport.c:312,5'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/transport.c:319,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    transport_connect_rdstls
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 480
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          127
      EdgeCount:       39
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - rdstls_authenticate
        - rdstls_free
        - rdstls_new
        - transport_connect_tls
        - transport_get_context
        - transport_set_rdstls_mode
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:455,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:457,12'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:458,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:460,7'
          Dst:             transport_connect_tls
        - Src:             'libfreerdp/core/transport.c:463,11'
          Dst:             rdstls_new
        - Src:             'libfreerdp/core/transport.c:467,2'
          Dst:             transport_set_rdstls_mode
        - Src:             'libfreerdp/core/transport.c:469,6'
          Dst:             rdstls_authenticate
        - Src:             'libfreerdp/core/transport.c:471,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:471,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:472,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/transport.c:472,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/transport.c:476,2'
          Dst:             transport_set_rdstls_mode
        - Src:             'libfreerdp/core/transport.c:479,2'
          Dst:             rdstls_free
    - functionName:    transport_connect_nla
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         49
      ICount:          217
      EdgeCount:       58
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - freerdp_settings_get_server_name
        - nla_client_begin
        - nla_free
        - nla_new
        - nla_set_early_user_auth
        - nla_set_service_principal
        - rdp_client_transition_to_state
        - transport_connect_tls
        - transport_get_context
        - transport_set_nla_mode
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:404,12'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:405,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:408,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:411,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:413,7'
          Dst:             transport_connect_tls
        - Src:             'libfreerdp/core/transport.c:419,2'
          Dst:             nla_free
        - Src:             'libfreerdp/core/transport.c:420,13'
          Dst:             nla_new
        - Src:             'libfreerdp/core/transport.c:425,2'
          Dst:             nla_set_early_user_auth
        - Src:             'libfreerdp/core/transport.c:427,2'
          Dst:             transport_set_nla_mode
        - Src:             'libfreerdp/core/transport.c:432,34'
          Dst:             freerdp_settings_get_server_name
        - Src:             'libfreerdp/core/transport.c:431,8'
          Dst:             nla_set_service_principal
        - Src:             'libfreerdp/core/transport.c:436,6'
          Dst:             nla_client_begin
        - Src:             'libfreerdp/core/transport.c:438,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/transport.c:438,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/transport.c:440,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/transport.c:440,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/transport.c:442,3'
          Dst:             transport_set_nla_mode
        - Src:             'libfreerdp/core/transport.c:446,9'
          Dst:             rdp_client_transition_to_state
    - functionName:    transport_connect_rdp
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          74
      EdgeCount:       18
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - transport_get_context
        - utils_authenticate
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/transport.c:279,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:279,29'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:279,10'
          Dst:             utils_authenticate
        - Src:             'libfreerdp/core/transport.c:286,4'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:286,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/transport.c:286,4'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/transport.c:286,4'
          Dst:             freerdp_set_last_error_ex
    - functionName:    transport_attach
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:211,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    transport_send_stream_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/transport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_New
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/transport.c:202,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/transport.c:204,9'
          Dst:             Stream_New
    - functionName:    update_write_suppress_output
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1417
      functionLinenumberEnd: 1432
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         88
      ICount:          245
      EdgeCount:       89
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - Stream_Zero
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1418,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1420,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1420,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1420,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:1422,2'
          Dst:             Stream_Zero
        - Src:             'libfreerdp/core/update.c:1426,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1427,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1427,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1427,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:1428,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1428,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1428,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:1429,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1429,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1429,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:1430,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1430,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1430,3'
          Dst:             Stream_Write_UINT16_unchecked
    - 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:    43
      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_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_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:    82
      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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:236,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Fill
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 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_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:    29
      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:    update_write_refresh_rect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1379
      functionLinenumberEnd: 1393
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         92
      ICount:          302
      EdgeCount:       94
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Seek
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1380,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1381,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1383,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1383,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1383,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:1384,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:1388,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1388,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1388,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:1389,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1389,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1389,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:1390,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1390,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1390,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:1391,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1391,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1391,3'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    update_calculate_monitored_desktop
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3268
      functionLinenumberEnd: 3284
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          87
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3271,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3272,2'
          Dst:             winpr_int_assert
    - functionName:    update_send_new_or_existing_order_icon
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3092
      functionLinenumberEnd: 3135
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         642
      ICount:          2216
      EdgeCount:       721
      CyclomaticComplexity: 81
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3093,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3095,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:3098,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3098,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3098,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3098,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3098,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3098,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3098,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3098,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3098,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:3100,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3100,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3100,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3100,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3100,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3100,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3100,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3100,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3100,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:3102,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3102,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3102,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3102,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3102,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3102,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3102,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3102,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3102,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:3103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3103,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:3105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3105,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:3110,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:3112,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3112,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3112,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3112,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3112,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3112,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3112,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3112,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3112,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:3116,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:3118,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3118,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3118,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3118,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3118,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3118,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3118,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3118,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3118,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:3120,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3120,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3120,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3120,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3120,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3120,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3120,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3120,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3120,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:3122,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/update.c:3126,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:3128,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/update.c:3131,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:3133,2'
          Dst:             Stream_Write
    - 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:    14
      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:    update_calculate_new_or_existing_notification_icons_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3048
      functionLinenumberEnd: 3088
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          211
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3051,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3052,2'
          Dst:             winpr_int_assert
    - functionName:    update_send_new_or_existing_notification_icons
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3141
      functionLinenumberEnd: 3225
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         344
      ICount:          1134
      EdgeCount:       379
      CyclomaticComplexity: 37
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - rail_write_unicode_string
        - update_calculate_new_or_existing_notification_icons_order
        - update_cast
        - update_check_flush
        - update_send_new_or_existing_order_icon
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3145,6'
          Dst:             update_calculate_new_or_existing_notification_icons_order
        - Src:             'libfreerdp/core/update.c:3147,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3148,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3149,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3150,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:3152,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:3159,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:3163,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3163,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3163,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:3164,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3164,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3164,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:3165,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3165,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3165,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:3166,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3166,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3166,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:3167,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3167,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3167,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:3173,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3173,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3173,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:3178,7'
          Dst:             rail_write_unicode_string
        - Src:             'libfreerdp/core/update.c:3190,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3190,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3190,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:3191,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3191,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3191,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:3192,7'
          Dst:             rail_write_unicode_string
        - Src:             'libfreerdp/core/update.c:3194,7'
          Dst:             rail_write_unicode_string
        - Src:             'libfreerdp/core/update.c:3204,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3204,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3204,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:3211,8'
          Dst:             update_send_new_or_existing_order_icon
        - Src:             'libfreerdp/core/update.c:3217,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3217,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3217,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3217,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3217,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3217,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3217,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3217,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3217,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:3219,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3219,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3219,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3219,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3219,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3219,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3219,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3219,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3219,3'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    update_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    45
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.h:171,2'
          Dst:             winpr_int_assert
    - functionName:    update_check_flush
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1216
      functionLinenumberEnd: 1237
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          94
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_GetPosition
        - update_begin_paint
        - update_cast
        - update_flush
        - winpr_int_assert
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1217,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1218,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1224,8'
          Dst:             update_begin_paint
        - Src:             'libfreerdp/core/update.c:1229,6'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:1232,8'
          Dst:             update_flush
    - 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:    41
      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_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:    update_begin_paint
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3577
      functionLinenumberEnd: 3607
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         46
      ICount:          207
      EdgeCount:       53
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Print_dbg_tag
        - rdp_update_lock
        - update_cast
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3578,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:3579,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3580,2'
          Dst:             rdp_update_lock
        - Src:             'libfreerdp/core/update.c:3584,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3587,12'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:3589,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:3599,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3600,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:    29
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    update_flush
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1193
      functionLinenumberEnd: 1208
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          73
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - update_begin_paint
        - update_cast
        - update_end_paint
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1196,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1197,11'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1201,8'
          Dst:             update_end_paint
        - Src:             'libfreerdp/core/update.c:1204,8'
          Dst:             update_begin_paint
    - functionName:    update_end_paint
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3610
      functionLinenumberEnd: 3627
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          102
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - rdp_update_unlock
        - update_cast
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3611,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:3614,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3617,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:3619,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:3625,2'
          Dst:             rdp_update_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:    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:    rdp_update_unlock
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3571
      functionLinenumberEnd: 3574
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - LeaveCriticalSection
        - update_cast
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3572,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:3573,2'
          Dst:             LeaveCriticalSection
    - functionName:    rdp_update_lock
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3565
      functionLinenumberEnd: 3568
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - update_cast
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3566,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:3567,2'
          Dst:             EnterCriticalSection
    - functionName:    update_calculate_window_icon_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2898
      functionLinenumberEnd: 2910
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          82
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2901,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2903,2'
          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:    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:    8
      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:    update_write_order_field_flags
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2724
      functionLinenumberEnd: 2845
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         721
      ICount:          2278
      EdgeCount:       780
      CyclomaticComplexity: 61
      functionsReached:
        - Stream_Write
        - Stream_Write_INT32_unchecked
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - rail_write_unicode_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2725,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2728,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2728,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2728,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2732,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2732,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2732,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2733,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2733,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2733,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2738,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2738,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2738,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2738,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2738,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2738,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2738,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2738,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2738,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2743,7'
          Dst:             rail_write_unicode_string
        - Src:             'libfreerdp/core/update.c:2749,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2749,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2749,3'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/update.c:2750,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2750,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2750,3'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/update.c:2755,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2755,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2755,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2756,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2756,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2756,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2761,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2761,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2761,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2762,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2762,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2762,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2767,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2767,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2767,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2768,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2768,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2768,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2773,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2773,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2773,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2773,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2773,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2773,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2773,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2773,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2773,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2778,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2778,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2778,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2783,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2783,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2783,3'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/update.c:2784,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2784,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2784,3'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/update.c:2789,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2789,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2789,3'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/update.c:2790,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2790,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2790,3'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/update.c:2795,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2795,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2795,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2796,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2796,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2796,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2801,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2801,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2801,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2801,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2801,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2801,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2801,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2801,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2801,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2802,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/update.c:2807,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2807,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2807,3'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/update.c:2808,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2808,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2808,3'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/update.c:2813,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2813,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2813,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2813,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2813,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2813,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2813,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2813,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2813,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2814,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/update.c:2820,7'
          Dst:             rail_write_unicode_string
        - Src:             'libfreerdp/core/update.c:2826,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2826,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2826,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2831,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2831,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2831,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2836,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2836,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2836,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2841,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2841,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2841,3'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    update_calculate_new_or_existing_window
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2643
      functionLinenumberEnd: 2719
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         99
      ICount:          528
      EdgeCount:       123
      CyclomaticComplexity: 26
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2646,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2647,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2719,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2719,9'
          Dst:             winpr_int_assert
    - functionName:    update_send_new_or_existing_window
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2850
      functionLinenumberEnd: 2881
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         86
      ICount:          269
      EdgeCount:       90
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - update_calculate_new_or_existing_window
        - update_cast
        - update_check_flush
        - update_write_order_field_flags
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2852,21'
          Dst:             update_calculate_new_or_existing_window
        - Src:             'libfreerdp/core/update.c:2854,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2855,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2856,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2858,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:2860,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:2868,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:2871,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2871,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2871,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2872,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2872,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2872,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2873,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2873,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2873,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2874,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2874,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2874,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2876,7'
          Dst:             update_write_order_field_flags
    - functionName:    update_write_pointer_large
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2431
      functionLinenumberEnd: 2449
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         134
      ICount:          391
      EdgeCount:       135
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2432,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2434,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:2437,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2437,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2437,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2438,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2438,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2438,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2439,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2439,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2439,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2440,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2440,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2440,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2441,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2441,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2441,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2442,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2442,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2442,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2443,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2443,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2443,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2444,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2444,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2444,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2445,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/update.c:2446,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/update.c:2447,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    update_write_pointer_color
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2381
      functionLinenumberEnd: 2403
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         126
      ICount:          388
      EdgeCount:       129
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2383,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:2387,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2387,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2387,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2388,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2388,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2388,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2389,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2389,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2389,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2390,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2390,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2390,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2391,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2391,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2391,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2392,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2392,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2392,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2393,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2393,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2393,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2396,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/update.c:2399,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/update.c:2401,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    update_bounds_equals
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1265
      functionLinenumberEnd: 1270
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          92
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1266,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1267,2'
          Dst:             winpr_int_assert
    - functionName:    update_bounds_is_null
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1258
      functionLinenumberEnd: 1261
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          66
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1259,2'
          Dst:             winpr_int_assert
    - functionName:    update_prepare_bounds
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1274
      functionLinenumberEnd: 1329
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          237
      EdgeCount:       39
      CyclomaticComplexity: 8
      functionsReached:
        - update_bounds_equals
        - update_bounds_is_null
        - update_cast
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1278,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1279,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1281,11'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1285,6'
          Dst:             update_bounds_is_null
        - Src:             'libfreerdp/core/update.c:1290,6'
          Dst:             update_bounds_equals
    - functionName:    update_write_order_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1350
      functionLinenumberEnd: 1376
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         118
      ICount:          421
      EdgeCount:       132
      CyclomaticComplexity: 16
      functionsReached:
        - Stream_GetPosition
        - Stream_SetPosition
        - Stream_Write_UINT8_unchecked
        - get_primary_drawing_order_field_bytes
        - update_write_bounds
        - update_write_field_flags
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1352,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1353,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1355,26'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:1358,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/update.c:1361,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1361,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1361,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:1364,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1364,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1364,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1364,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1364,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1364,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1364,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1364,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1364,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:1369,10'
          Dst:             get_primary_drawing_order_field_bytes
        - Src:             'libfreerdp/core/update.c:1367,7'
          Dst:             update_write_field_flags
        - Src:             'libfreerdp/core/update.c:1371,7'
          Dst:             update_write_bounds
        - Src:             'libfreerdp/core/update.c:1373,7'
          Dst:             Stream_SetPosition
    - functionName:    update_prepare_order_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1333
      functionLinenumberEnd: 1344
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - get_primary_drawing_order_field_bytes
        - update_prepare_bounds
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1334,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1335,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1342,12'
          Dst:             get_primary_drawing_order_field_bytes
        - Src:             'libfreerdp/core/update.c:1343,12'
          Dst:             update_prepare_bounds
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    update_write_bitmap_data_no_comp_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         320
      ICount:          1076
      EdgeCount:       357
      CyclomaticComplexity: 39
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:276,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:277,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:280,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:283,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:283,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:283,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:283,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:283,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:283,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:283,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:283,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:283,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:286,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:286,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:286,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:286,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:286,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:286,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:286,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:286,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:286,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:288,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:288,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:288,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:288,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:288,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:288,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:288,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:288,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:288,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    update_write_bitmap_data_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         705
      ICount:          2366
      EdgeCount:       787
      CyclomaticComplexity: 84
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:259,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:260,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:262,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:262,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:262,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:262,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:262,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:262,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:262,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:262,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:262,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:263,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:263,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:263,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:263,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:263,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:263,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:263,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:263,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:263,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:264,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:264,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:264,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:264,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:264,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:264,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:264,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:264,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:264,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:265,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:265,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:265,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:265,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:265,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:265,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:265,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:265,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:265,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:266,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:266,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:266,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:266,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:266,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:266,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:266,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:266,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:266,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:267,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:268,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:268,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:268,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:268,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:268,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:268,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:268,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:268,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:268,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:269,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:269,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:269,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:269,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:269,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:269,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:269,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:269,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:269,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:270,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:270,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:270,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:270,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:270,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:270,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:270,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:270,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:270,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    update_write_bitmap_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          194
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - update_cast
        - update_write_bitmap_data_header
        - update_write_bitmap_data_no_comp_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:296,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:298,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:300,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:318,7'
          Dst:             update_write_bitmap_data_header
        - Src:             'libfreerdp/core/update.c:325,9'
          Dst:             update_write_bitmap_data_no_comp_header
        - Src:             'libfreerdp/core/update.c:330,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:332,2'
          Dst:             Stream_Write
    - functionName:    update_write_bitmap_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         111
      ICount:          363
      EdgeCount:       123
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - update_write_bitmap_data
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:375,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:376,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:378,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:381,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:382,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:388,8'
          Dst:             update_write_bitmap_data
    - functionName:    update_force_flush
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1211
      functionLinenumberEnd: 1212
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - update_flush
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1212,9'
          Dst:             update_flush
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:1325,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Seek_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1199
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1200,3'
          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:    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:    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_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_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,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:    update_dump_stats
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3672
      functionLinenumberEnd: 3693
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         49
      ICount:          192
      EdgeCount:       58
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_stats_max_index
        - rdp_stats_name_for_index
        - rdp_stats_value_for_index
        - strcmp
        - strnlen
        - strstr
        - update_cast
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3673,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:3674,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3678,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/update.c:3681,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/update.c:3681,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/update.c:3682,25'
          Dst:             rdp_stats_max_index
        - Src:             'libfreerdp/core/update.c:3684,22'
          Dst:             rdp_stats_name_for_index
        - Src:             'libfreerdp/core/update.c:3685,24'
          Dst:             rdp_stats_value_for_index
        - Src:             'libfreerdp/core/update.c:3686,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/update.c:3686,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3687,24'
          Dst:             strstr
        - Src:             'libfreerdp/core/update.c:3688,23'
          Dst:             strstr
        - Src:             'libfreerdp/core/update.c:3689,24'
          Dst:             strcmp
        - Src:             'libfreerdp/core/update.c:3691,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/update.c:3691,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdp_stats_max_index
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3667
      functionLinenumberEnd: 3668
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rdp_stats_name_for_index
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3658
      functionLinenumberEnd: 3664
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - rdp_stats_max_index
        - stats_names_generate
        - winpr_InitOnceExecuteOnce
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3659,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'libfreerdp/core/update.c:3659,7'
          Dst:             stats_names_generate
        - Src:             'libfreerdp/core/update.c:3661,14'
          Dst:             rdp_stats_max_index
    - functionName:    rdp_stats_value_for_index
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3630
      functionLinenumberEnd: 3655
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          127
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - update_cast
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3631,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:3632,2'
          Dst:             winpr_int_assert
    - functionName:    stats_names_generate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         131
      ICount:          577
      EdgeCount:       147
      CyclomaticComplexity: 18
      functionsReached:
        - altsec_order_string
        - primary_order_string
        - secondary_order_string
        - snprintf
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/update.c:117,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/update.c:71,43'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:71,43'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:71,22'
          Dst:             primary_order_string
        - Src:             'libfreerdp/core/update.c:75,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:76,4'
          Dst:             strnlen
        - Src:             'libfreerdp/core/update.c:76,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:86,8'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:86,8'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:85,22'
          Dst:             secondary_order_string
        - Src:             'libfreerdp/core/update.c:89,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:90,4'
          Dst:             strnlen
        - Src:             'libfreerdp/core/update.c:90,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:99,42'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:99,42'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:99,22'
          Dst:             altsec_order_string
        - Src:             'libfreerdp/core/update.c:103,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:104,4'
          Dst:             strnlen
        - Src:             'libfreerdp/core/update.c:104,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:119,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:120,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:121,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:122,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:123,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:124,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:125,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:126,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:127,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:128,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:129,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:130,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:131,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:132,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:133,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:134,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:135,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:136,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:137,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:138,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:139,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:140,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:141,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:142,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:143,5'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:145,12'
          Dst:             snprintf
        - Src:             'libfreerdp/core/update.c:151,10'
          Dst:             snprintf
    - functionName:    update_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3526
      functionLinenumberEnd: 3562
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          146
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - DeleteCriticalSection
        - MessageQueue_Free
        - Stream_Free
        - altsec_update_cast
        - primary_update_cast
        - update_cast
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3529,29'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:3530,40'
          Dst:             altsec_update_cast
        - Src:             'libfreerdp/core/update.c:3540,43'
          Dst:             primary_update_cast
        - Src:             'libfreerdp/core/update.c:3555,3'
          Dst:             MessageQueue_Free
        - Src:             'libfreerdp/core/update.c:3556,3'
          Dst:             DeleteCriticalSection
        - Src:             'libfreerdp/core/update.c:3559,4'
          Dst:             Stream_Free
    - functionName:    altsec_update_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.h'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.h:185,2'
          Dst:             winpr_int_assert
    - functionName:    primary_update_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.h:199,2'
          Dst:             winpr_int_assert
    - functionName:    update_free_queued_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3427
      functionLinenumberEnd: 3430
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - update_message_queue_free_message
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3429,2'
          Dst:             update_message_queue_free_message
    - functionName:    update_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3445
      functionLinenumberEnd: 3523
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          210
      EdgeCount:       41
      CyclomaticComplexity: 10
      functionsReached:
        - InitializeCriticalSection
        - MessageQueue_New
        - WLog_Get
        - calloc
        - update_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3448,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3449,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3451,54'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:3457,16'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/update.c:3458,2'
          Dst:             InitializeCriticalSection
        - Src:             'libfreerdp/core/update.c:3459,46'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:3466,37'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:3475,39'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:3484,36'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:3491,45'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:3499,26'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:3511,18'
          Dst:             MessageQueue_New
        - Src:             'libfreerdp/core/update.c:3520,2'
          Dst:             update_free
    - functionName:    update_send_suppress_output
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1435
      functionLinenumberEnd: 1456
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          121
      EdgeCount:       34
      CyclomaticComplexity: 4
      functionsReached:
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - update_write_suppress_output
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1436,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1439,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1440,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1444,16'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/update.c:1449,3'
          Dst:             update_write_suppress_output
        - Src:             'libfreerdp/core/update.c:1450,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1451,10'
          Dst:             rdp_send_data_pdu
    - functionName:    update_free_window_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3433
      functionLinenumberEnd: 3442
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rail_unicode_string_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3437,2'
          Dst:             rail_unicode_string_free
        - Src:             'libfreerdp/core/update.c:3438,2'
          Dst:             rail_unicode_string_free
    - functionName:    update_process_messages
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3422
      functionLinenumberEnd: 3423
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - update_message_queue_process_pending_messages
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3423,9'
          Dst:             update_message_queue_process_pending_messages
    - functionName:    update_send_frame_acknowledge
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1588
      functionLinenumberEnd: 1610
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         52
      ICount:          167
      EdgeCount:       54
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Write_UINT32_unchecked
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1589,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1592,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1593,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1594,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1595,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1599,16'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/update.c:1604,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1604,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1604,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:1605,10'
          Dst:             rdp_send_data_pdu
    - functionName:    update_send_refresh_rect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1396
      functionLinenumberEnd: 1414
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          95
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - update_write_refresh_rect
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1397,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1400,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1404,16'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/update.c:1409,3'
          Dst:             update_write_refresh_rect
        - Src:             'libfreerdp/core/update.c:1410,10'
          Dst:             rdp_send_data_pdu
    - functionName:    update_register_client_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3413
      functionLinenumberEnd: 3419
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3414,2'
          Dst:             winpr_int_assert
    - functionName:    update_send_non_monitored_desktop
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3336
      functionLinenumberEnd: 3357
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         62
      ICount:          189
      EdgeCount:       64
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - update_cast
        - update_check_flush
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3340,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3341,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3342,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:3344,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:3352,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3352,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3352,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:3353,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3353,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3353,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:3354,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3354,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3354,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    update_send_monitored_desktop
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3289
      functionLinenumberEnd: 3332
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         246
      ICount:          793
      EdgeCount:       269
      CyclomaticComplexity: 25
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - update_calculate_monitored_desktop
        - update_cast
        - update_check_flush
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3291,21'
          Dst:             update_calculate_monitored_desktop
        - Src:             'libfreerdp/core/update.c:3293,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3294,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3295,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3297,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:3299,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:3307,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3307,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3307,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:3308,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3308,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3308,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:3309,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3309,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3309,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:3313,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3313,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3313,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:3318,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3318,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3318,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3318,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3318,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3318,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3318,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3318,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3318,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:3325,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3325,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3325,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3325,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3325,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3325,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3325,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3325,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3325,4'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    update_send_notify_icon_delete
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3240
      functionLinenumberEnd: 3264
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         90
      ICount:          263
      EdgeCount:       92
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - update_cast
        - update_check_flush
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3244,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3245,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3246,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:3248,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:3257,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3257,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3257,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:3258,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3258,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3258,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:3259,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3259,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3259,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:3260,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3260,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3260,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:3261,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3261,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3261,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    update_send_notify_icon_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3235
      functionLinenumberEnd: 3236
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - update_send_new_or_existing_notification_icons
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3236,9'
          Dst:             update_send_new_or_existing_notification_icons
    - functionName:    update_send_notify_icon_create
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3229
      functionLinenumberEnd: 3230
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - update_send_new_or_existing_notification_icons
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3230,9'
          Dst:             update_send_new_or_existing_notification_icons
    - functionName:    update_send_window_delete
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3018
      functionLinenumberEnd: 3044
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         78
      ICount:          238
      EdgeCount:       81
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - update_cast
        - update_check_flush
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3022,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3023,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3024,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:3026,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:3034,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:3038,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3038,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3038,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:3039,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3039,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3039,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:3040,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3040,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3040,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:3041,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3041,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3041,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    update_send_window_cached_icon
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2980
      functionLinenumberEnd: 3015
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         244
      ICount:          784
      EdgeCount:       265
      CyclomaticComplexity: 23
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - update_cast
        - update_check_flush
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2984,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2987,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2988,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2989,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2991,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:2993,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:3000,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:3004,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3004,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3004,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:3005,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3005,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3005,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:3006,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3006,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3006,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:3007,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3007,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3007,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:3009,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3009,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3009,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3009,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3009,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3009,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3009,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3009,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3009,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:3011,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3011,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3011,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3011,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3011,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3011,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3011,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3011,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:3011,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    update_send_window_icon
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2915
      functionLinenumberEnd: 2976
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         715
      ICount:          2396
      EdgeCount:       793
      CyclomaticComplexity: 80
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - update_calculate_window_icon_order
        - update_cast
        - update_check_flush
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2918,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2920,21'
          Dst:             update_calculate_window_icon_order
        - Src:             'libfreerdp/core/update.c:2922,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2923,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2924,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2926,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:2928,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:2936,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:2940,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2940,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2940,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2941,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2941,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2941,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2942,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2942,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2942,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2943,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2943,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2943,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2945,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2945,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2945,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2945,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2945,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2945,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2945,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2945,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2945,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2947,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2947,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2947,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2947,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2947,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2947,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2947,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2947,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2947,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2949,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2949,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2949,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2949,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2949,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2949,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2949,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2949,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2949,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2950,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2950,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2950,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2950,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2950,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2950,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2950,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2950,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2950,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2952,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2952,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2952,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2952,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2952,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2952,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2952,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2952,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2952,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2957,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2957,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2957,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2957,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2957,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2957,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2957,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2957,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2957,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2961,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2961,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2961,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2961,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2961,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2961,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2961,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2961,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2961,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2963,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2963,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2963,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2963,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2963,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2963,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2963,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2963,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2963,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2965,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/update.c:2969,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/update.c:2972,2'
          Dst:             Stream_Write
    - functionName:    update_send_window_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2891
      functionLinenumberEnd: 2892
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - update_send_new_or_existing_window
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2892,9'
          Dst:             update_send_new_or_existing_window
    - functionName:    update_send_window_create
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2885
      functionLinenumberEnd: 2886
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - update_send_new_or_existing_window
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2886,9'
          Dst:             update_send_new_or_existing_window
    - functionName:    update_send_pointer_cached
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2503
      functionLinenumberEnd: 2522
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         101
      ICount:          347
      EdgeCount:       111
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_Release
        - Stream_Write_UINT16_unchecked
        - fastpath_send_update_pdu
        - fastpath_update_pdu_init
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2506,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2510,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2511,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2512,6'
          Dst:             fastpath_update_pdu_init
        - Src:             'libfreerdp/core/update.c:2517,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2517,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2517,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2517,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2517,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2517,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2517,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2517,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2517,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2519,8'
          Dst:             fastpath_send_update_pdu
        - Src:             'libfreerdp/core/update.c:2520,2'
          Dst:             Stream_Release
    - functionName:    update_send_pointer_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2475
      functionLinenumberEnd: 2499
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         104
      ICount:          361
      EdgeCount:       115
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Release
        - Stream_Write_UINT16_unchecked
        - fastpath_send_update_pdu
        - fastpath_update_pdu_init
        - update_write_pointer_color
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2478,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2482,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2483,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2484,6'
          Dst:             fastpath_update_pdu_init
        - Src:             'libfreerdp/core/update.c:2489,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:2492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2492,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2494,2'
          Dst:             update_write_pointer_color
        - Src:             'libfreerdp/core/update.c:2495,8'
          Dst:             fastpath_send_update_pdu
        - Src:             'libfreerdp/core/update.c:2497,2'
          Dst:             Stream_Release
    - functionName:    update_send_pointer_large
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2452
      functionLinenumberEnd: 2472
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          100
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Release
        - fastpath_send_update_pdu
        - fastpath_update_pdu_init
        - update_write_pointer_large
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2454,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2458,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2459,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2460,6'
          Dst:             fastpath_update_pdu_init
        - Src:             'libfreerdp/core/update.c:2465,7'
          Dst:             update_write_pointer_large
        - Src:             'libfreerdp/core/update.c:2468,8'
          Dst:             fastpath_send_update_pdu
        - Src:             'libfreerdp/core/update.c:2470,2'
          Dst:             Stream_Release
    - functionName:    update_send_pointer_color
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2407
      functionLinenumberEnd: 2428
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          100
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Release
        - fastpath_send_update_pdu
        - fastpath_update_pdu_init
        - update_write_pointer_color
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2410,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2414,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2415,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2416,6'
          Dst:             fastpath_update_pdu_init
        - Src:             'libfreerdp/core/update.c:2421,7'
          Dst:             update_write_pointer_color
        - Src:             'libfreerdp/core/update.c:2424,8'
          Dst:             fastpath_send_update_pdu
        - Src:             'libfreerdp/core/update.c:2426,2'
          Dst:             Stream_Release
    - functionName:    update_send_pointer_position
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2355
      functionLinenumberEnd: 2378
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         175
      ICount:          603
      EdgeCount:       195
      CyclomaticComplexity: 22
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Release
        - Stream_Write_UINT16_unchecked
        - fastpath_send_update_pdu
        - fastpath_update_pdu_init
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2357,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2361,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2362,6'
          Dst:             fastpath_update_pdu_init
        - Src:             'libfreerdp/core/update.c:2367,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:2370,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2370,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2370,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2370,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2370,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2370,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2370,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2370,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2370,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2372,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2372,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2372,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2372,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2372,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2372,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2372,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2372,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2372,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2374,8'
          Dst:             fastpath_send_update_pdu
        - Src:             'libfreerdp/core/update.c:2376,2'
          Dst:             Stream_Release
    - functionName:    update_send_pointer_system
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2329
      functionLinenumberEnd: 2351
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          93
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Release
        - fastpath_send_update_pdu
        - fastpath_update_pdu_init
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2333,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2337,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2338,6'
          Dst:             fastpath_update_pdu_init
        - Src:             'libfreerdp/core/update.c:2348,8'
          Dst:             fastpath_send_update_pdu
        - Src:             'libfreerdp/core/update.c:2349,2'
          Dst:             Stream_Release
    - functionName:    update_send_switch_surface_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2291
      functionLinenumberEnd: 2325
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          162
      EdgeCount:       49
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - Stream_SetPosition
        - Stream_Write_UINT8_unchecked
        - update_approximate_switch_surface_order
        - update_cast
        - update_check_flush
        - update_write_switch_surface_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2292,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2293,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2294,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:2299,21'
          Dst:             update_approximate_switch_surface_order
        - Src:             'libfreerdp/core/update.c:2300,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:2308,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2310,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:2313,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:2315,7'
          Dst:             update_write_switch_surface_order
        - Src:             'libfreerdp/core/update.c:2318,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2319,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/update.c:2321,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2324,9'
          Dst:             Stream_SetPosition
    - functionName:    update_send_create_offscreen_bitmap_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2253
      functionLinenumberEnd: 2287
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          162
      EdgeCount:       49
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - Stream_SetPosition
        - Stream_Write_UINT8_unchecked
        - update_approximate_create_offscreen_bitmap_order
        - update_cast
        - update_check_flush
        - update_write_create_offscreen_bitmap_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2254,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2255,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2256,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:2261,21'
          Dst:             update_approximate_create_offscreen_bitmap_order
        - Src:             'libfreerdp/core/update.c:2262,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:2270,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2272,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:2275,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:2277,7'
          Dst:             update_write_create_offscreen_bitmap_order
        - Src:             'libfreerdp/core/update.c:2280,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2281,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/update.c:2283,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2286,9'
          Dst:             Stream_SetPosition
    - functionName:    update_send_cache_brush
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2204
      functionLinenumberEnd: 2245
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         82
      ICount:          258
      EdgeCount:       88
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - Stream_SetPosition
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - update_approximate_cache_brush_order
        - update_cast
        - update_check_flush
        - update_write_cache_brush_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2208,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2209,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2210,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:2212,21'
          Dst:             update_approximate_cache_brush_order
        - Src:             'libfreerdp/core/update.c:2213,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:2221,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2223,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:2226,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:2228,7'
          Dst:             update_write_cache_brush_order
        - Src:             'libfreerdp/core/update.c:2231,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2236,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2237,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/update.c:2239,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2240,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2240,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2240,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2241,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2241,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2241,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2242,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2244,9'
          Dst:             Stream_SetPosition
    - functionName:    update_send_cache_glyph_v2
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2162
      functionLinenumberEnd: 2201
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         86
      ICount:          262
      EdgeCount:       91
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - Stream_SetPosition
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - update_approximate_cache_glyph_v2_order
        - update_cast
        - update_check_flush
        - update_write_cache_glyph_v2_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2166,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2167,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2168,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:2170,21'
          Dst:             update_approximate_cache_glyph_v2_order
        - Src:             'libfreerdp/core/update.c:2171,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:2179,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2181,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:2184,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:2186,7'
          Dst:             update_write_cache_glyph_v2_order
        - Src:             'libfreerdp/core/update.c:2189,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2190,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2192,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2193,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/update.c:2195,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2196,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2196,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2196,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2197,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2197,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2197,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2198,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2200,9'
          Dst:             Stream_SetPosition
    - functionName:    update_send_cache_glyph
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2119
      functionLinenumberEnd: 2158
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         86
      ICount:          262
      EdgeCount:       91
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - Stream_SetPosition
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - update_approximate_cache_glyph_order
        - update_cast
        - update_check_flush
        - update_write_cache_glyph_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2123,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2124,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2125,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:2127,21'
          Dst:             update_approximate_cache_glyph_order
        - Src:             'libfreerdp/core/update.c:2128,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:2136,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2138,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:2141,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:2143,7'
          Dst:             update_write_cache_glyph_order
        - Src:             'libfreerdp/core/update.c:2146,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2147,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2149,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2150,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/update.c:2152,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2153,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2153,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2153,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2154,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2154,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2154,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2155,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2157,9'
          Dst:             Stream_SetPosition
    - functionName:    update_send_cache_color_table
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2077
      functionLinenumberEnd: 2116
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         86
      ICount:          265
      EdgeCount:       91
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - Stream_SetPosition
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - update_approximate_cache_color_table_order
        - update_cast
        - update_check_flush
        - update_write_cache_color_table_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2081,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2082,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2083,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:2085,21'
          Dst:             update_approximate_cache_color_table_order
        - Src:             'libfreerdp/core/update.c:2086,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:2094,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2096,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:2099,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:2101,7'
          Dst:             update_write_cache_color_table_order
        - Src:             'libfreerdp/core/update.c:2104,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2107,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2108,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/update.c:2110,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2111,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2111,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2111,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2112,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2112,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2112,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2113,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2115,9'
          Dst:             Stream_SetPosition
    - functionName:    update_send_cache_bitmap_v3
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2032
      functionLinenumberEnd: 2073
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         86
      ICount:          261
      EdgeCount:       91
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - Stream_SetPosition
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - update_approximate_cache_bitmap_v3_order
        - update_cast
        - update_check_flush
        - update_write_cache_bitmap_v3_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2036,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2037,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2038,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:2041,50'
          Dst:             update_approximate_cache_bitmap_v3_order
        - Src:             'libfreerdp/core/update.c:2041,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:2050,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2052,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:2055,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:2057,7'
          Dst:             update_write_cache_bitmap_v3_order
        - Src:             'libfreerdp/core/update.c:2060,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2061,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2063,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2065,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/update.c:2067,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2068,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2068,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2068,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2069,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2069,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2069,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2070,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2072,9'
          Dst:             Stream_SetPosition
    - functionName:    update_send_cache_bitmap_v2
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1981
      functionLinenumberEnd: 2029
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         93
      ICount:          317
      EdgeCount:       99
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - Stream_SetPosition
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - update_approximate_cache_bitmap_v2_order
        - update_cast
        - update_check_flush
        - update_write_cache_bitmap_v2_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1985,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1986,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1987,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1996,34'
          Dst:             update_approximate_cache_bitmap_v2_order
        - Src:             'libfreerdp/core/update.c:1995,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:2005,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2007,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:2010,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:2012,7'
          Dst:             update_write_cache_bitmap_v2_order
        - Src:             'libfreerdp/core/update.c:2016,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:2017,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2019,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2021,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/update.c:2023,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2024,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2024,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2024,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2025,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2025,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2025,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2026,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2026,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2026,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:2028,9'
          Dst:             Stream_SetPosition
    - functionName:    update_send_cache_bitmap
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1935
      functionLinenumberEnd: 1978
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         90
      ICount:          299
      EdgeCount:       95
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - Stream_SetPosition
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - update_approximate_cache_bitmap_order
        - update_cast
        - update_check_flush
        - update_write_cache_bitmap_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1939,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1940,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1941,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1946,6'
          Dst:             update_approximate_cache_bitmap_order
        - Src:             'libfreerdp/core/update.c:1947,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:1955,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:1957,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:1960,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:1962,7'
          Dst:             update_write_cache_bitmap_order
        - Src:             'libfreerdp/core/update.c:1965,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:1966,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1968,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1970,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/update.c:1972,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:1973,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1973,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1973,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:1974,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1974,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1974,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:1975,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1975,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1975,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/update.c:1977,9'
          Dst:             Stream_SetPosition
    - functionName:    update_send_glyph_index
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1898
      functionLinenumberEnd: 1928
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          134
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - update_approximate_glyph_index_order
        - update_cast
        - update_check_flush
        - update_prepare_order_info
        - update_write_glyph_index_order
        - update_write_order_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1901,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1902,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1903,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1906,6'
          Dst:             update_prepare_order_info
        - Src:             'libfreerdp/core/update.c:1907,21'
          Dst:             update_approximate_glyph_index_order
        - Src:             'libfreerdp/core/update.c:1908,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:1916,24'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:1918,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:1921,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:1922,7'
          Dst:             update_write_glyph_index_order
        - Src:             'libfreerdp/core/update.c:1924,6'
          Dst:             update_write_order_info
    - functionName:    update_send_memblt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1866
      functionLinenumberEnd: 1895
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          132
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - update_approximate_memblt_order
        - update_cast
        - update_check_flush
        - update_prepare_order_info
        - update_write_memblt_order
        - update_write_order_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1870,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1871,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1872,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1873,30'
          Dst:             update_prepare_order_info
        - Src:             'libfreerdp/core/update.c:1875,41'
          Dst:             update_approximate_memblt_order
        - Src:             'libfreerdp/core/update.c:1874,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:1883,11'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:1885,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:1888,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:1889,7'
          Dst:             update_write_memblt_order
        - Src:             'libfreerdp/core/update.c:1891,6'
          Dst:             update_write_order_info
    - functionName:    update_send_line_to
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1835
      functionLinenumberEnd: 1863
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          134
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - update_approximate_line_to_order
        - update_cast
        - update_check_flush
        - update_prepare_order_info
        - update_write_line_to_order
        - update_write_order_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1838,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1839,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1840,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1841,30'
          Dst:             update_prepare_order_info
        - Src:             'libfreerdp/core/update.c:1842,21'
          Dst:             update_approximate_line_to_order
        - Src:             'libfreerdp/core/update.c:1843,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:1851,24'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:1853,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:1856,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:1857,7'
          Dst:             update_write_line_to_order
        - Src:             'libfreerdp/core/update.c:1859,6'
          Dst:             update_write_order_info
    - functionName:    update_send_opaque_rect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1801
      functionLinenumberEnd: 1832
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          132
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - update_approximate_opaque_rect_order
        - update_cast
        - update_check_flush
        - update_prepare_order_info
        - update_write_opaque_rect_order
        - update_write_order_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1805,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1806,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1807,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1810,6'
          Dst:             update_prepare_order_info
        - Src:             'libfreerdp/core/update.c:1812,34'
          Dst:             update_approximate_opaque_rect_order
        - Src:             'libfreerdp/core/update.c:1811,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:1820,11'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:1822,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:1825,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:1826,7'
          Dst:             update_write_opaque_rect_order
        - Src:             'libfreerdp/core/update.c:1828,6'
          Dst:             update_write_order_info
    - functionName:    update_send_scrblt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1769
      functionLinenumberEnd: 1798
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          134
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - update_approximate_scrblt_order
        - update_cast
        - update_check_flush
        - update_prepare_order_info
        - update_write_order_info
        - update_write_scrblt_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1772,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1773,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1774,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1776,30'
          Dst:             update_prepare_order_info
        - Src:             'libfreerdp/core/update.c:1777,21'
          Dst:             update_approximate_scrblt_order
        - Src:             'libfreerdp/core/update.c:1778,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:1786,24'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:1788,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:1791,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:1792,7'
          Dst:             update_write_scrblt_order
        - Src:             'libfreerdp/core/update.c:1794,6'
          Dst:             update_write_order_info
    - functionName:    update_send_patblt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1736
      functionLinenumberEnd: 1766
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          132
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - update_approximate_patblt_order
        - update_cast
        - update_check_flush
        - update_prepare_order_info
        - update_write_order_info
        - update_write_patblt_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1740,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1741,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1742,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1744,30'
          Dst:             update_prepare_order_info
        - Src:             'libfreerdp/core/update.c:1746,41'
          Dst:             update_approximate_patblt_order
        - Src:             'libfreerdp/core/update.c:1745,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:1754,11'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:1756,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:1759,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:1760,7'
          Dst:             update_write_patblt_order
        - Src:             'libfreerdp/core/update.c:1762,6'
          Dst:             update_write_order_info
    - functionName:    update_send_dstblt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1701
      functionLinenumberEnd: 1733
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          134
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - update_approximate_dstblt_order
        - update_cast
        - update_check_flush
        - update_prepare_order_info
        - update_write_dstblt_order
        - update_write_order_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1704,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1705,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1707,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1709,30'
          Dst:             update_prepare_order_info
        - Src:             'libfreerdp/core/update.c:1710,21'
          Dst:             update_approximate_dstblt_order
        - Src:             'libfreerdp/core/update.c:1711,7'
          Dst:             update_check_flush
        - Src:             'libfreerdp/core/update.c:1719,24'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:1721,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:1724,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:1726,7'
          Dst:             update_write_dstblt_order
        - Src:             'libfreerdp/core/update.c:1729,6'
          Dst:             update_write_order_info
    - functionName:    update_send_set_keyboard_ime_status
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2620
      functionLinenumberEnd: 2639
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          176
      EdgeCount:       61
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2624,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2626,6'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/update.c:2632,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2632,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2632,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2633,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2633,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2633,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2634,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2634,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2634,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:2636,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2637,9'
          Dst:             rdp_send_data_pdu
    - functionName:    update_send_set_keyboard_indicators
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2599
      functionLinenumberEnd: 2616
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          122
      EdgeCount:       43
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2603,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2605,6'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/update.c:2610,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2611,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2611,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2611,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:2613,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2614,9'
          Dst:             rdp_send_data_pdu
    - functionName:    update_send_play_sound
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1670
      functionLinenumberEnd: 1694
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         72
      ICount:          223
      EdgeCount:       74
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Write_UINT32_unchecked
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1673,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1676,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1677,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1678,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1679,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1680,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1686,6'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/update.c:1691,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1691,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1691,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:1692,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1692,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1692,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/update.c:1693,9'
          Dst:             rdp_send_data_pdu
    - functionName:    update_send_surface_frame_bits
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1545
      functionLinenumberEnd: 1585
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          162
      EdgeCount:       43
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_Release
        - fastpath_send_update_pdu
        - fastpath_update_pdu_init
        - update_force_flush
        - update_write_surfcmd_frame_marker
        - update_write_surfcmd_surface_bits
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1548,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1552,7'
          Dst:             update_force_flush
        - Src:             'libfreerdp/core/update.c:1555,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1556,6'
          Dst:             fastpath_update_pdu_init
        - Src:             'libfreerdp/core/update.c:1563,8'
          Dst:             update_write_surfcmd_frame_marker
        - Src:             'libfreerdp/core/update.c:1567,7'
          Dst:             update_write_surfcmd_surface_bits
        - Src:             'libfreerdp/core/update.c:1572,8'
          Dst:             update_write_surfcmd_frame_marker
        - Src:             'libfreerdp/core/update.c:1576,8'
          Dst:             fastpath_send_update_pdu
        - Src:             'libfreerdp/core/update.c:1581,8'
          Dst:             update_force_flush
        - Src:             'libfreerdp/core/update.c:1583,2'
          Dst:             Stream_Release
    - functionName:    update_send_surface_command
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1459
      functionLinenumberEnd: 1482
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          96
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Buffer
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Release
        - Stream_Write
        - fastpath_send_update_pdu
        - fastpath_update_pdu_init
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1461,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1465,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1466,11'
          Dst:             fastpath_update_pdu_init
        - Src:             'libfreerdp/core/update.c:1471,46'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:1471,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/update.c:1477,23'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/update.c:1477,41'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/update.c:1477,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/update.c:1478,8'
          Dst:             fastpath_send_update_pdu
        - Src:             'libfreerdp/core/update.c:1480,2'
          Dst:             Stream_Release
    - functionName:    update_send_surface_frame_marker
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1517
      functionLinenumberEnd: 1541
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          129
      EdgeCount:       36
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Release
        - fastpath_send_update_pdu
        - fastpath_update_pdu_init
        - update_force_flush
        - update_write_surfcmd_frame_marker
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1519,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1522,7'
          Dst:             update_force_flush
        - Src:             'libfreerdp/core/update.c:1525,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1526,6'
          Dst:             fastpath_update_pdu_init
        - Src:             'libfreerdp/core/update.c:1531,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1532,7'
          Dst:             update_write_surfcmd_frame_marker
        - Src:             'libfreerdp/core/update.c:1534,7'
          Dst:             fastpath_send_update_pdu
        - Src:             'libfreerdp/core/update.c:1537,8'
          Dst:             update_force_flush
        - Src:             'libfreerdp/core/update.c:1539,2'
          Dst:             Stream_Release
    - functionName:    update_send_surface_bits
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1486
      functionLinenumberEnd: 1513
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          122
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Release
        - fastpath_send_update_pdu
        - fastpath_update_pdu_init
        - update_force_flush
        - update_write_surfcmd_surface_bits
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1488,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1493,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1495,7'
          Dst:             update_force_flush
        - Src:             'libfreerdp/core/update.c:1497,6'
          Dst:             fastpath_update_pdu_init
        - Src:             'libfreerdp/core/update.c:1502,7'
          Dst:             update_write_surfcmd_surface_bits
        - Src:             'libfreerdp/core/update.c:1505,7'
          Dst:             fastpath_send_update_pdu
        - Src:             'libfreerdp/core/update.c:1509,8'
          Dst:             update_force_flush
        - Src:             'libfreerdp/core/update.c:1511,2'
          Dst:             Stream_Release
    - functionName:    update_send_bitmap_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1638
      functionLinenumberEnd: 1667
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          118
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Release
        - fastpath_send_update_pdu
        - fastpath_update_pdu_init
        - update_force_flush
        - update_write_bitmap_update
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1640,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1645,7'
          Dst:             update_force_flush
        - Src:             'libfreerdp/core/update.c:1648,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1649,6'
          Dst:             fastpath_update_pdu_init
        - Src:             'libfreerdp/core/update.c:1654,7'
          Dst:             update_write_bitmap_update
        - Src:             'libfreerdp/core/update.c:1655,7'
          Dst:             fastpath_send_update_pdu
        - Src:             'libfreerdp/core/update.c:1662,8'
          Dst:             update_force_flush
        - Src:             'libfreerdp/core/update.c:1665,2'
          Dst:             Stream_Release
    - functionName:    update_send_desktop_resize
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1632
      functionLinenumberEnd: 1634
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_server_reactivate
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1633,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1634,9'
          Dst:             rdp_server_reactivate
    - functionName:    update_send_synchronize
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1613
      functionLinenumberEnd: 1629
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          77
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Release
        - Stream_Zero
        - fastpath_send_update_pdu
        - fastpath_update_pdu_init
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1615,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1619,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1620,6'
          Dst:             fastpath_update_pdu_init
        - Src:             'libfreerdp/core/update.c:1625,2'
          Dst:             Stream_Zero
        - Src:             'libfreerdp/core/update.c:1626,8'
          Dst:             fastpath_send_update_pdu
        - Src:             'libfreerdp/core/update.c:1627,2'
          Dst:             Stream_Release
    - functionName:    update_set_bounds
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1240
      functionLinenumberEnd: 1254
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          57
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - update_cast
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1243,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1245,11'
          Dst:             update_cast
    - functionName:    s_update_end_paint
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1156
      functionLinenumberEnd: 1190
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          167
      EdgeCount:       41
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_Free
        - Stream_Length
        - Stream_SealLength
        - Stream_SetPosition
        - Stream_Write_UINT16_unchecked
        - WLog_Print_dbg_tag
        - fastpath_send_update_pdu
        - update_cast
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1159,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1160,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1168,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/update.c:1169,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/update.c:1171,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1171,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1171,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/update.c:1172,29'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/update.c:1172,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/update.c:1177,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:1178,8'
          Dst:             fastpath_send_update_pdu
        - Src:             'libfreerdp/core/update.c:1188,2'
          Dst:             Stream_Free
    - functionName:    s_update_begin_paint
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1129
      functionLinenumberEnd: 1153
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          112
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Length
        - Stream_SealLength
        - Stream_Seek
        - fastpath_update_pdu_init_new
        - update_cast
        - update_end_paint
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1131,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1132,32'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1136,8'
          Dst:             update_end_paint
        - Src:             'libfreerdp/core/update.c:1140,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1141,6'
          Dst:             fastpath_update_pdu_init_new
        - Src:             'libfreerdp/core/update.c:1146,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/update.c:1147,2'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/update.c:1148,2'
          Dst:             Stream_Seek
    - functionName:    update_register_server_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3360
      functionLinenumberEnd: 3410
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          233
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:3361,2'
          Dst:             winpr_int_assert
    - functionName:    update_read_suppress_output
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2560
      functionLinenumberEnd: 2596
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         60
      ICount:          216
      EdgeCount:       66
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - stream_read_u8
        - update_cast
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2561,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:2566,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2567,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2569,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:2572,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/update.c:2573,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:2577,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:2580,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:2581,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:2582,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:2583,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:2588,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2589,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2591,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:2593,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/update.c:2593,3'
          Dst:             WLog_PrintTextMessage
    - 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:    42
      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:    update_read_refresh_rect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2525
      functionLinenumberEnd: 2557
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         49
      ICount:          205
      EdgeCount:       55
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - stream_read_u8
        - update_cast
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:2528,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:2530,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:2533,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/update.c:2534,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/update.c:2536,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:2543,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:2544,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:2545,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:2546,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:2549,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2550,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:2552,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:2554,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/update.c:2554,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    update_post_disconnect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1110
      functionLinenumberEnd: 1126
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          74
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - update_cast
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1111,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1113,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1114,2'
          Dst:             winpr_int_assert
    - functionName:    update_post_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1083
      functionLinenumberEnd: 1106
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          137
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - altsec_update_cast
        - update_cast
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1084,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1085,39'
          Dst:             altsec_update_cast
        - Src:             'libfreerdp/core/update.c:1087,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1088,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1094,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:1095,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:1103,18'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_reset_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1027
      functionLinenumberEnd: 1080
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          219
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - altsec_update_cast
        - primary_update_cast
        - update_cast
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:1028,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:1029,41'
          Dst:             primary_update_cast
        - Src:             'libfreerdp/core/update.c:1031,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1070,40'
          Dst:             altsec_update_cast
        - Src:             'libfreerdp/core/update.c:1071,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:1077,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/update.c:1077,5'
          Dst:             WLog_PrintTextMessage
    - functionName:    update_read_synchronize
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_SafeSeekEx
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:435,9'
          Dst:             Stream_SafeSeekEx
    - functionName:    update_recv_orders
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          79
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek_UINT16
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - update_recv_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:170,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:172,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:175,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/update.c:176,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:177,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/update.c:181,8'
          Dst:             update_recv_order
        - Src:             'libfreerdp/core/update.c:183,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    Stream_Seek_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1203
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1204,3'
          Dst:             Stream_Seek
    - functionName:    update_type_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_recv
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 945
      functionLinenumberEnd: 1024
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         59
      ICount:          327
      EdgeCount:       72
      CyclomaticComplexity: 15
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - free_bitmap_update
        - free_palette_update
        - stream_read_u16_le
        - update_begin_paint
        - update_cast
        - update_end_paint
        - update_read_bitmap_update
        - update_read_palette
        - update_read_synchronize
        - update_recv_orders
        - update_type_to_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/update.c:962,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/update.c:948,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:951,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:953,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:956,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:957,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/update.c:957,2'
          Dst:             update_type_to_string
        - Src:             'libfreerdp/core/update.c:957,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/update.c:959,7'
          Dst:             update_begin_paint
        - Src:             'libfreerdp/core/update.c:965,9'
          Dst:             update_recv_orders
        - Src:             'libfreerdp/core/update.c:970,35'
          Dst:             update_read_bitmap_update
        - Src:             'libfreerdp/core/update.c:974,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:979,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:980,4'
          Dst:             free_bitmap_update
        - Src:             'libfreerdp/core/update.c:986,37'
          Dst:             update_read_palette
        - Src:             'libfreerdp/core/update.c:990,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:995,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:996,4'
          Dst:             free_palette_update
        - Src:             'libfreerdp/core/update.c:1001,9'
          Dst:             update_read_synchronize
        - Src:             'libfreerdp/core/update.c:1004,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:1013,7'
          Dst:             update_end_paint
        - Src:             'libfreerdp/core/update.c:1018,3'
          Dst:             update_type_to_string
        - Src:             'libfreerdp/core/update.c:1018,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_read_bitmap_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          138
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - calloc
        - free_bitmap_update
        - stream_read_u16_le
        - update_cast
        - update_read_bitmap_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:339,32'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:340,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/update.c:345,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:348,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:349,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/update.c:349,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/update.c:351,43'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:359,8'
          Dst:             update_read_bitmap_data
        - Src:             'libfreerdp/core/update.c:367,2'
          Dst:             free_bitmap_update
    - functionName:    update_read_palette
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          134
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek_UINT16
        - calloc
        - free_palette_update
        - stream_read_u32_le
        - stream_read_u8
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:397,35'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:402,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:405,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/update.c:406,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/update.c:411,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:418,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/update.c:419,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/update.c:420,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/update.c:427,2'
          Dst:             free_palette_update
    - 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:    6
      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:    update_read_bitmap_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          288
      EdgeCount:       67
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_Seek
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:196,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:198,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:201,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:202,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:203,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:204,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:205,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:206,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:207,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:208,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:209,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:213,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:222,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:225,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:227,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:229,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:230,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:240,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:250,40'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/update.c:251,3'
          Dst:             Stream_Seek
    - functionName:    update_recv_pointer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 848
      functionLinenumberEnd: 942
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         76
      ICount:          414
      EdgeCount:       94
      CyclomaticComplexity: 20
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek_UINT16
        - WLog_Print_dbg_tag
        - free_pointer_cached_update
        - free_pointer_color_update
        - free_pointer_large_update
        - free_pointer_new_update
        - free_pointer_position_update
        - free_pointer_system_update
        - stream_read_u16_le
        - update_read_pointer_cached
        - update_read_pointer_color
        - update_read_pointer_large
        - update_read_pointer_new
        - update_read_pointer_position
        - update_read_pointer_system
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/update.c:863,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/update.c:852,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:857,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:860,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:861,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/update.c:867,48'
          Dst:             update_read_pointer_position
        - Src:             'libfreerdp/core/update.c:871,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:872,5'
          Dst:             free_pointer_position_update
        - Src:             'libfreerdp/core/update.c:879,44'
          Dst:             update_read_pointer_system
        - Src:             'libfreerdp/core/update.c:883,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:884,5'
          Dst:             free_pointer_system_update
        - Src:             'libfreerdp/core/update.c:891,42'
          Dst:             update_read_pointer_color
        - Src:             'libfreerdp/core/update.c:895,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:896,5'
          Dst:             free_pointer_color_update
        - Src:             'libfreerdp/core/update.c:903,42'
          Dst:             update_read_pointer_large
        - Src:             'libfreerdp/core/update.c:907,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:908,5'
          Dst:             free_pointer_large_update
        - Src:             'libfreerdp/core/update.c:915,38'
          Dst:             update_read_pointer_new
        - Src:             'libfreerdp/core/update.c:919,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:920,5'
          Dst:             free_pointer_new_update
        - Src:             'libfreerdp/core/update.c:927,44'
          Dst:             update_read_pointer_cached
        - Src:             'libfreerdp/core/update.c:931,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:932,5'
          Dst:             free_pointer_cached_update
    - functionName:    update_read_pointer_position
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          77
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - calloc
        - free_pointer_position_update
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:468,46'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:470,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:475,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:478,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:479,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:484,2'
          Dst:             free_pointer_position_update
    - functionName:    update_read_pointer_system
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 490
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - calloc
        - free_pointer_system_update
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:491,42'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:493,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:498,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:501,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/update.c:506,2'
          Dst:             free_pointer_system_update
    - functionName:    update_read_pointer_color
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 640
      functionLinenumberEnd: 659
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          72
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - free_pointer_color_update
        - s_update_read_pointer_color
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:641,40'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:643,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:648,7'
          Dst:             s_update_read_pointer_color
        - Src:             'libfreerdp/core/update.c:656,2'
          Dst:             free_pointer_color_update
    - functionName:    update_read_pointer_large
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 770
      functionLinenumberEnd: 788
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          62
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - free_pointer_large_update
        - s_update_read_pointer_large
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:771,34'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:773,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:778,7'
          Dst:             s_update_read_pointer_large
        - Src:             'libfreerdp/core/update.c:785,2'
          Dst:             free_pointer_large_update
    - functionName:    update_read_pointer_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 791
      functionLinenumberEnd: 823
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          131
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - calloc
        - free_pointer_new_update
        - s_update_read_pointer_color
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:792,36'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:794,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:799,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:802,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:806,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:810,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:811,7'
          Dst:             s_update_read_pointer_color
        - Src:             'libfreerdp/core/update.c:820,2'
          Dst:             free_pointer_new_update
    - functionName:    update_read_pointer_cached
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 826
      functionLinenumberEnd: 845
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          69
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - calloc
        - free_pointer_cached_update
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:827,35'
          Dst:             calloc
        - Src:             'libfreerdp/core/update.c:829,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:834,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:837,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:842,2'
          Dst:             free_pointer_cached_update
    - functionName:    s_update_read_pointer_color
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 637
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          411
      EdgeCount:       80
      CyclomaticComplexity: 18
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
        - Stream_Read
        - Stream_Seek_UINT8
        - WLog_Print_dbg_tag
        - realloc
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:518,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:526,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:529,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:530,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:531,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:541,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:542,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:547,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:548,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:575,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:583,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:591,13'
          Dst:             realloc
        - Src:             'libfreerdp/core/update.c:597,3'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/update.c:609,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:617,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:622,13'
          Dst:             realloc
        - Src:             'libfreerdp/core/update.c:628,3'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/update.c:631,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/update.c:632,3'
          Dst:             Stream_Seek_UINT8
    - functionName:    s_update_read_pointer_large
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 662
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         57
      ICount:          380
      EdgeCount:       72
      CyclomaticComplexity: 17
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
        - Stream_Read
        - Stream_Seek_UINT8
        - WLog_Print_dbg_tag
        - realloc
        - stream_read_u16_le
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:669,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:672,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:673,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:674,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:675,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:677,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:678,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/update.c:683,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/update.c:684,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/update.c:705,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:713,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:721,13'
          Dst:             realloc
        - Src:             'libfreerdp/core/update.c:727,3'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/update.c:739,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:747,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/update.c:752,13'
          Dst:             realloc
        - Src:             'libfreerdp/core/update.c:758,3'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/update.c:761,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/update.c:762,3'
          Dst:             Stream_Seek_UINT8
    - functionName:    update_read_play_sound
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          58
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:444,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:446,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/update.c:449,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/update.c:450,2'
          Dst:             stream_read_u32_le
    - functionName:    update_recv_play_sound
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          83
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - update_read_play_sound
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.c:458,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/update.c:460,7'
          Dst:             update_read_play_sound
        - Src:             'libfreerdp/core/update.c:463,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    input_message_process_input_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3055
      functionLinenumberEnd: 3115
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          338
      EdgeCount:       61
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:3061,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/message.c:3064,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:3068,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:3073,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:3085,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:3097,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:3102,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:3106,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:    85
      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:    input_message_free_input_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3018
      functionLinenumberEnd: 3051
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          49
      EdgeCount:       18
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:3023,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    icon_info_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1473
      functionLinenumberEnd: 1503
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          157
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    notify_icon_state_order_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1506
      functionLinenumberEnd: 1526
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          173
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
        - icon_info_clone
        - notify_icon_state_order_free
        - rail_unicode_string_clone
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1507,35'
          Dst:             calloc
        - Src:             'libfreerdp/core/message.c:1512,19'
          Dst:             rail_unicode_string_clone
        - Src:             'libfreerdp/core/message.c:1513,24'
          Dst:             rail_unicode_string_clone
        - Src:             'libfreerdp/core/message.c:1514,25'
          Dst:             rail_unicode_string_clone
        - Src:             'libfreerdp/core/message.c:1516,7'
          Dst:             icon_info_clone
        - Src:             'libfreerdp/core/message.c:1521,3'
          Dst:             notify_icon_state_order_free
    - functionName:    rail_unicode_string_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1233
      functionLinenumberEnd: 1239
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          99
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - _wcsnlen
        - wcsndup
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1234,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/message.c:1235,2'
          Dst:             _wcsnlen
        - Src:             'libfreerdp/core/message.c:1235,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/message.c:1237,42'
          Dst:             wcsndup
    - functionName:    notify_icon_state_order_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1459
      functionLinenumberEnd: 1470
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rail_unicode_string_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1463,2'
          Dst:             rail_unicode_string_free
        - Src:             'libfreerdp/core/message.c:1464,2'
          Dst:             rail_unicode_string_free
        - Src:             'libfreerdp/core/message.c:1465,2'
          Dst:             rail_unicode_string_free
    - functionName:    window_state_order_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1255
      functionLinenumberEnd: 1273
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          154
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - calloc
        - rail_unicode_string_clone
        - rectangles_clone
        - window_state_order_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1256,30'
          Dst:             calloc
        - Src:             'libfreerdp/core/message.c:1261,21'
          Dst:             rail_unicode_string_clone
        - Src:             'libfreerdp/core/message.c:1262,30'
          Dst:             rail_unicode_string_clone
        - Src:             'libfreerdp/core/message.c:1263,23'
          Dst:             rectangles_clone
        - Src:             'libfreerdp/core/message.c:1264,27'
          Dst:             rectangles_clone
        - Src:             'libfreerdp/core/message.c:1269,3'
          Dst:             window_state_order_free
    - functionName:    window_state_order_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1243
      functionLinenumberEnd: 1252
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rail_unicode_string_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1248,2'
          Dst:             rail_unicode_string_free
        - Src:             'libfreerdp/core/message.c:1249,2'
          Dst:             rail_unicode_string_free
    - 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:    2
      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_ResetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1358,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Copy
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1246
      functionLinenumberEnd: 1255
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          88
      EdgeCount:       27
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1247,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1248,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1249,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1249,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1250,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1250,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1253,3'
          Dst:             Stream_Seek
        - Src:             'winpr/include/winpr/stream.h:1254,3'
          Dst:             Stream_Seek
    - functionName:    update_message_PointerCached
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1766
      functionLinenumberEnd: 1781
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_pointer_cached_update
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1773,11'
          Dst:             copy_pointer_cached_update
        - Src:             'libfreerdp/core/message.c:1778,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1779,9'
          Dst:             MessageQueue_Post
    - functionName:    update_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    77
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.h:171,2'
          Dst:             winpr_int_assert
    - functionName:    update_message_PointerNew
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1747
      functionLinenumberEnd: 1762
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_pointer_new_update
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1754,11'
          Dst:             copy_pointer_new_update
        - Src:             'libfreerdp/core/message.c:1759,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1760,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_PointerLarge
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1729
      functionLinenumberEnd: 1744
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_pointer_large_update
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1736,11'
          Dst:             copy_pointer_large_update
        - Src:             'libfreerdp/core/message.c:1741,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1742,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_PointerColor
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1711
      functionLinenumberEnd: 1726
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_pointer_color_update
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1718,11'
          Dst:             copy_pointer_color_update
        - Src:             'libfreerdp/core/message.c:1723,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1724,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_PointerSystem
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1692
      functionLinenumberEnd: 1707
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_pointer_system_update
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1699,11'
          Dst:             copy_pointer_system_update
        - Src:             'libfreerdp/core/message.c:1704,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1705,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_PointerPosition
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1673
      functionLinenumberEnd: 1688
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_pointer_position_update
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1680,11'
          Dst:             copy_pointer_position_update
        - Src:             'libfreerdp/core/message.c:1685,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1686,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_NonMonitoredDesktop
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1649
      functionLinenumberEnd: 1667
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1663,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1664,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_MonitoredDesktop
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1610
      functionLinenumberEnd: 1645
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          135
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - MessageQueue_Post
        - calloc
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1637,32'
          Dst:             calloc
        - Src:             'libfreerdp/core/message.c:1641,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1642,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_NotifyIconDelete
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1589
      functionLinenumberEnd: 1606
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1603,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1604,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_NotifyIconUpdate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1560
      functionLinenumberEnd: 1586
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          100
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - MessageQueue_Post
        - notify_icon_state_order_clone
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1574,11'
          Dst:             notify_icon_state_order_clone
        - Src:             'libfreerdp/core/message.c:1582,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1583,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_NotifyIconCreate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1530
      functionLinenumberEnd: 1556
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          100
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - MessageQueue_Post
        - notify_icon_state_order_clone
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1544,11'
          Dst:             notify_icon_state_order_clone
        - Src:             'libfreerdp/core/message.c:1552,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1553,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_WindowDelete
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1439
      functionLinenumberEnd: 1456
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1453,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1454,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_WindowCachedIcon
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1408
      functionLinenumberEnd: 1436
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          102
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1432,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1433,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_WindowIcon
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1329
      functionLinenumberEnd: 1404
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          330
      EdgeCount:       55
      CyclomaticComplexity: 17
      functionsReached:
        - MessageQueue_Post
        - WLog_Print_dbg_tag
        - calloc
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1340,50'
          Dst:             calloc
        - Src:             'libfreerdp/core/message.c:1346,21'
          Dst:             calloc
        - Src:             'libfreerdp/core/message.c:1353,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1388,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1389,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_WindowUpdate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1303
      functionLinenumberEnd: 1325
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          97
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - MessageQueue_Post
        - update_cast
        - window_state_order_clone
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1314,31'
          Dst:             window_state_order_clone
        - Src:             'libfreerdp/core/message.c:1322,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1323,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_WindowCreate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1277
      functionLinenumberEnd: 1299
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          97
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - MessageQueue_Post
        - update_cast
        - window_state_order_clone
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1288,31'
          Dst:             window_state_order_clone
        - Src:             'libfreerdp/core/message.c:1296,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1297,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_DrawGdiPlusCacheEnd
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1210
      functionLinenumberEnd: 1229
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1225,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1226,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_DrawGdiPlusCacheNext
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1186
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1201,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1202,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_DrawGdiPlusCacheFirst
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1162
      functionLinenumberEnd: 1181
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1177,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1178,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_DrawGdiPlusEnd
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1139
      functionLinenumberEnd: 1157
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1154,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1155,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_DrawGdiPlusNext
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1117
      functionLinenumberEnd: 1135
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1132,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1133,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_DrawGdiPlusFirst
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1096
      functionLinenumberEnd: 1113
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1110,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1111,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_StreamBitmapNext
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1074
      functionLinenumberEnd: 1092
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1089,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1090,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_StreamBitmapFirst
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1051
      functionLinenumberEnd: 1070
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1066,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1067,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_FrameMarker
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1030
      functionLinenumberEnd: 1047
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1044,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1045,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_CreateNineGridBitmap
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1009
      functionLinenumberEnd: 1027
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1023,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1024,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_SwitchSurface
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 987
      functionLinenumberEnd: 1004
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1001,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:1002,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_CreateOffscreenBitmap
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 953
      functionLinenumberEnd: 983
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          128
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - MessageQueue_Post
        - calloc
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:968,40'
          Dst:             calloc
        - Src:             'libfreerdp/core/message.c:979,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:980,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_CacheBrush
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 931
      functionLinenumberEnd: 946
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_cache_brush_order
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:938,11'
          Dst:             copy_cache_brush_order
        - Src:             'libfreerdp/core/message.c:943,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:944,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_CacheGlyphV2
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 913
      functionLinenumberEnd: 928
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_cache_glyph_v2_order
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:920,11'
          Dst:             copy_cache_glyph_v2_order
        - Src:             'libfreerdp/core/message.c:925,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:926,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_CacheGlyph
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 894
      functionLinenumberEnd: 909
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_cache_glyph_order
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:901,11'
          Dst:             copy_cache_glyph_order
        - Src:             'libfreerdp/core/message.c:906,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:907,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_CacheColorTable
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 875
      functionLinenumberEnd: 891
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_cache_color_table_order
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:882,11'
          Dst:             copy_cache_color_table_order
        - Src:             'libfreerdp/core/message.c:887,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:888,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_CacheBitmapV3
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 856
      functionLinenumberEnd: 871
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_cache_bitmap_v3_order
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:863,11'
          Dst:             copy_cache_bitmap_v3_order
        - Src:             'libfreerdp/core/message.c:868,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:869,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_CacheBitmapV2
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 837
      functionLinenumberEnd: 852
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_cache_bitmap_v2_order
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:844,11'
          Dst:             copy_cache_bitmap_v2_order
        - Src:             'libfreerdp/core/message.c:849,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:850,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_CacheBitmap
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 818
      functionLinenumberEnd: 833
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_cache_bitmap_order
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:825,11'
          Dst:             copy_cache_bitmap_order
        - Src:             'libfreerdp/core/message.c:830,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:831,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_EllipseCB
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 794
      functionLinenumberEnd: 812
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:809,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:810,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_EllipseSC
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 777
      functionLinenumberEnd: 791
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          73
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:788,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:789,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_PolygonCB
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 746
      functionLinenumberEnd: 774
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          124
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - MessageQueue_Post
        - calloc
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:758,34'
          Dst:             calloc
        - Src:             'libfreerdp/core/message.c:771,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:772,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_PolygonSC
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 717
      functionLinenumberEnd: 743
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          116
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - MessageQueue_Post
        - calloc
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:729,34'
          Dst:             calloc
        - Src:             'libfreerdp/core/message.c:740,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:741,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_FastGlyph
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 714
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          127
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:711,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:712,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_FastIndex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 660
      functionLinenumberEnd: 677
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:674,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:675,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_GlyphIndex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 639
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:654,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:655,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_SaveBitmap
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 619
      functionLinenumberEnd: 636
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:633,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:634,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_Mem3Blt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 616
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:613,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:614,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_MemBlt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 595
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:592,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:593,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_Polyline
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 549
      functionLinenumberEnd: 575
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          107
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - MessageQueue_Post
        - calloc
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:562,33'
          Dst:             calloc
        - Src:             'libfreerdp/core/message.c:572,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:573,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_LineTo
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:543,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:544,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_MultiDrawNineGrid
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 507
      functionLinenumberEnd: 526
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:522,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:523,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_MultiOpaqueRect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 503
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:500,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:501,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_MultiScrBlt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 482
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:479,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:480,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_MultiPatBlt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:459,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:460,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_MultiDstBlt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:438,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:439,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_DrawNineGrid
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:418,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:419,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_OpaqueRect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:397,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:398,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_ScrBlt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:377,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:378,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_PatBlt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:357,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:358,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_DstBlt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:336,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:337,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_SurfaceFrameAcknowledge
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:313,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:314,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_SurfaceFrameMarker
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:301,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:302,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_SurfaceBits
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_surface_bits_command
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:275,11'
          Dst:             copy_surface_bits_command
        - Src:             'libfreerdp/core/message.c:280,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:281,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_SurfaceCommand
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - Stream_Copy
        - Stream_GetRemainingLength
        - Stream_New
        - Stream_ResetPosition
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:253,31'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/message.c:253,11'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/message.c:258,25'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/message.c:258,2'
          Dst:             Stream_Copy
        - Src:             'libfreerdp/core/message.c:259,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/message.c:261,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:262,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_SuppressOutput
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          81
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:240,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:241,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_RefreshRect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          85
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - calloc
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:210,26'
          Dst:             calloc
        - Src:             'libfreerdp/core/message.c:217,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:218,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_SetKeyboardImeStatus
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:196,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:197,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_SetKeyboardIndicators
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:182,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:183,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_PlaySound
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:170,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:171,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_Palette
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_palette_update
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:145,11'
          Dst:             copy_palette_update
        - Src:             'libfreerdp/core/message.c:150,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:151,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_BitmapUpdate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - copy_bitmap_update
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:127,11'
          Dst:             copy_bitmap_update
        - Src:             'libfreerdp/core/message.c:132,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:133,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_DesktopResize
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:114,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:115,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_Synchronize
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:102,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:103,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_SetBounds
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          76
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:90,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:91,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_EndPaint
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:67,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:68,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_BeginPaint
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - MessageQueue_Post
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:55,7'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:56,9'
          Dst:             MessageQueue_Post
    - functionName:    update_message_free_pointer_update_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2554
      functionLinenumberEnd: 2604
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          102
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - free_pointer_cached_update
        - free_pointer_color_update
        - free_pointer_new_update
        - free_pointer_position_update
        - free_pointer_system_update
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:2562,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/message.c:2567,4'
          Dst:             free_pointer_position_update
        - Src:             'libfreerdp/core/message.c:2574,4'
          Dst:             free_pointer_system_update
        - Src:             'libfreerdp/core/message.c:2581,4'
          Dst:             free_pointer_cached_update
        - Src:             'libfreerdp/core/message.c:2588,4'
          Dst:             free_pointer_color_update
        - Src:             'libfreerdp/core/message.c:2595,4'
          Dst:             free_pointer_new_update
    - functionName:    update_message_free_window_update_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2408
      functionLinenumberEnd: 2491
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          224
      EdgeCount:       30
      CyclomaticComplexity: 5
      functionsReached:
        - notify_icon_state_order_free
        - window_state_order_free
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:2412,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/message.c:2416,4'
          Dst:             window_state_order_free
        - Src:             'libfreerdp/core/message.c:2421,4'
          Dst:             window_state_order_free
        - Src:             'libfreerdp/core/message.c:2461,4'
          Dst:             notify_icon_state_order_free
        - Src:             'libfreerdp/core/message.c:2466,4'
          Dst:             notify_icon_state_order_free
    - functionName:    update_message_free_altsec_update_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2281
      functionLinenumberEnd: 2344
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          140
      EdgeCount:       20
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:2285,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    update_message_free_secondary_update_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2173
      functionLinenumberEnd: 2237
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          126
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - free_cache_bitmap_order
        - free_cache_bitmap_v2_order
        - free_cache_bitmap_v3_order
        - free_cache_brush_order
        - free_cache_color_table_order
        - free_cache_glyph_order
        - free_cache_glyph_v2_order
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:2181,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/message.c:2186,4'
          Dst:             free_cache_bitmap_order
        - Src:             'libfreerdp/core/message.c:2193,4'
          Dst:             free_cache_bitmap_v2_order
        - Src:             'libfreerdp/core/message.c:2200,4'
          Dst:             free_cache_bitmap_v3_order
        - Src:             'libfreerdp/core/message.c:2207,4'
          Dst:             free_cache_color_table_order
        - Src:             'libfreerdp/core/message.c:2214,4'
          Dst:             free_cache_glyph_order
        - Src:             'libfreerdp/core/message.c:2221,4'
          Dst:             free_cache_glyph_v2_order
        - Src:             'libfreerdp/core/message.c:2228,4'
          Dst:             free_cache_brush_order
    - functionName:    update_message_free_primary_update_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1961
      functionLinenumberEnd: 2076
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          241
      EdgeCount:       30
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:1965,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    update_message_free_update_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1785
      functionLinenumberEnd: 1865
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          158
      EdgeCount:       25
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Free
        - free_bitmap_update
        - free_palette_update
        - free_surface_bits_command
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:1793,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1814,4'
          Dst:             free_bitmap_update
        - Src:             'libfreerdp/core/message.c:1821,4'
          Dst:             free_palette_update
        - Src:             'libfreerdp/core/message.c:1840,4'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/message.c:1847,4'
          Dst:             free_surface_bits_command
    - functionName:    update_message_process_pointer_update_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2608
      functionLinenumberEnd: 2637
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          269
      EdgeCount:       56
      CyclomaticComplexity: 13
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:2612,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/message.c:2615,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2619,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2623,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2627,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2631,11'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_message_process_window_update_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2495
      functionLinenumberEnd: 2551
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         80
      ICount:          521
      EdgeCount:       101
      CyclomaticComplexity: 23
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:2499,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/message.c:2502,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2506,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2513,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2517,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2522,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2526,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2531,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2536,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2540,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2545,11'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_message_process_altsec_update_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2348
      functionLinenumberEnd: 2405
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         94
      ICount:          584
      EdgeCount:       119
      CyclomaticComplexity: 27
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:2352,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/message.c:2355,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2359,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2363,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2367,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2371,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2375,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2379,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2383,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2387,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2391,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2395,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2399,11'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_message_process_secondary_update_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2241
      functionLinenumberEnd: 2278
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          359
      EdgeCount:       74
      CyclomaticComplexity: 17
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:2245,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/message.c:2248,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2252,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2256,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2260,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2264,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2268,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2272,11'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_message_process_primary_update_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2080
      functionLinenumberEnd: 2170
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         164
      ICount:          1034
      EdgeCount:       209
      CyclomaticComplexity: 47
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:2084,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/message.c:2087,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2090,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2093,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2096,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2100,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2104,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2108,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2112,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2116,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2120,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2124,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2127,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2130,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2133,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2136,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2140,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2144,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2148,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2152,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2156,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2160,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:2164,11'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_message_process_update_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1868
      functionLinenumberEnd: 1958
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         123
      ICount:          795
      EdgeCount:       156
      CyclomaticComplexity: 35
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:1874,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/message.c:1877,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1881,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1885,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1889,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1893,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1897,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1901,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1906,8'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1910,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1915,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1920,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1924,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1929,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1934,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1939,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/message.c:1948,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    input_message_queue_process_pending_messages
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3207
      functionLinenumberEnd: 3226
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - MessageQueue_Peek
        - input_cast
        - input_message_queue_process_message
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:3210,27'
          Dst:             input_cast
        - Src:             'libfreerdp/core/message.c:3217,9'
          Dst:             MessageQueue_Peek
        - Src:             'libfreerdp/core/message.c:3219,12'
          Dst:             input_message_queue_process_message
    - functionName:    input_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.h:56,2'
          Dst:             winpr_int_assert
    - functionName:    input_message_queue_process_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3183
      functionLinenumberEnd: 3204
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          83
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - input_cast
        - input_message_free_class
        - input_message_process_class
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:3187,27'
          Dst:             input_cast
        - Src:             'libfreerdp/core/message.c:3197,11'
          Dst:             input_message_process_class
        - Src:             'libfreerdp/core/message.c:3198,2'
          Dst:             input_message_free_class
    - functionName:    input_message_process_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3140
      functionLinenumberEnd: 3157
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - input_message_process_input_class
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:3143,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/message.c:3146,13'
          Dst:             input_message_process_input_class
        - Src:             'libfreerdp/core/message.c:3155,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    input_message_free_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3118
      functionLinenumberEnd: 3135
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - input_message_free_input_class
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:3121,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/message.c:3124,13'
          Dst:             input_message_free_input_class
        - Src:             'libfreerdp/core/message.c:3133,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    input_message_queue_free_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3161
      functionLinenumberEnd: 3180
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - input_message_free_class
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:3174,11'
          Dst:             input_message_free_class
    - functionName:    update_message_proxy_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3004
      functionLinenumberEnd: 3014
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - CloseHandle
        - MessageQueue_PostQuit
        - WaitForSingleObject
        - update_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:3007,29'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:3008,7'
          Dst:             MessageQueue_PostQuit
        - Src:             'libfreerdp/core/message.c:3009,10'
          Dst:             WaitForSingleObject
        - Src:             'libfreerdp/core/message.c:3011,9'
          Dst:             CloseHandle
    - functionName:    update_message_proxy_thread
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2959
      functionLinenumberEnd: 2976
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ExitThread
        - MessageQueue_Peek
        - MessageQueue_Wait
        - update_cast
        - update_message_queue_process_message
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:2962,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:2964,9'
          Dst:             MessageQueue_Wait
        - Src:             'libfreerdp/core/message.c:2968,7'
          Dst:             MessageQueue_Peek
        - Src:             'libfreerdp/core/message.c:2969,13'
          Dst:             update_message_queue_process_message
        - Src:             'libfreerdp/core/message.c:2975,2'
          Dst:             ExitThread
    - functionName:    update_message_queue_process_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2725
      functionLinenumberEnd: 2746
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          91
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - update_cast
        - update_message_free_class
        - update_message_process_class
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:2729,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:2739,11'
          Dst:             update_message_process_class
        - Src:             'libfreerdp/core/message.c:2740,2'
          Dst:             update_message_free_class
    - functionName:    update_message_process_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2681
      functionLinenumberEnd: 2722
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          103
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - update_message_process_altsec_update_class
        - update_message_process_pointer_update_class
        - update_message_process_primary_update_class
        - update_message_process_secondary_update_class
        - update_message_process_update_class
        - update_message_process_window_update_class
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:2684,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/message.c:2687,13'
          Dst:             update_message_process_update_class
        - Src:             'libfreerdp/core/message.c:2691,13'
          Dst:             update_message_process_primary_update_class
        - Src:             'libfreerdp/core/message.c:2695,13'
          Dst:             update_message_process_secondary_update_class
        - Src:             'libfreerdp/core/message.c:2699,13'
          Dst:             update_message_process_altsec_update_class
        - Src:             'libfreerdp/core/message.c:2703,13'
          Dst:             update_message_process_window_update_class
        - Src:             'libfreerdp/core/message.c:2707,13'
          Dst:             update_message_process_pointer_update_class
        - Src:             'libfreerdp/core/message.c:2717,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_message_free_class
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2640
      functionLinenumberEnd: 2676
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          91
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - update_message_free_altsec_update_class
        - update_message_free_pointer_update_class
        - update_message_free_primary_update_class
        - update_message_free_secondary_update_class
        - update_message_free_update_class
        - update_message_free_window_update_class
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/message.c:2643,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/message.c:2646,13'
          Dst:             update_message_free_update_class
        - Src:             'libfreerdp/core/message.c:2650,13'
          Dst:             update_message_free_primary_update_class
        - Src:             'libfreerdp/core/message.c:2654,13'
          Dst:             update_message_free_secondary_update_class
        - Src:             'libfreerdp/core/message.c:2658,13'
          Dst:             update_message_free_altsec_update_class
        - Src:             'libfreerdp/core/message.c:2662,13'
          Dst:             update_message_free_window_update_class
        - Src:             'libfreerdp/core/message.c:2666,13'
          Dst:             update_message_free_pointer_update_class
        - Src:             'libfreerdp/core/message.c:2674,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_message_register_interface
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2784
      functionLinenumberEnd: 2956
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          755
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_message_proxy_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2980
      functionLinenumberEnd: 3001
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - CreateThread
        - WLog_Print_dbg_tag
        - calloc
        - update_message_proxy_thread
        - update_message_register_interface
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:2986,35'
          Dst:             calloc
        - Src:             'libfreerdp/core/message.c:2990,2'
          Dst:             update_message_register_interface
        - Src:             'libfreerdp/core/message.c:2993,12'
          Dst:             CreateThread
        - Src:             'libfreerdp/core/message.c:2993,12'
          Dst:             update_message_proxy_thread
        - Src:             'libfreerdp/core/message.c:2995,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_message_queue_process_pending_messages
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2765
      functionLinenumberEnd: 2780
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - MessageQueue_Peek
        - update_cast
        - update_message_queue_process_message
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:2768,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/message.c:2772,9'
          Dst:             MessageQueue_Peek
        - Src:             'libfreerdp/core/message.c:2774,12'
          Dst:             update_message_queue_process_message
    - functionName:    update_message_queue_free_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2749
      functionLinenumberEnd: 2762
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - update_message_free_class
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/message.c:2761,9'
          Dst:             update_message_free_class
    - 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_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:    2
      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_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_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:    1
      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:    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:    FreeRDP_InitWtsApi
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/channels.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_channel_peer_process
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/channels.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          247
      EdgeCount:       55
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
        - Stream_Pointer
        - Stream_SafeSeekEx
        - WLog_Print_dbg_tag
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/channels.c:165,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/channels.c:166,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/channels.c:168,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/channels.c:171,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/channels.c:172,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/channels.c:173,29'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/channels.c:200,53'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/channels.c:206,59'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/channels.c:211,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/channels.c:213,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/channels.c:213,3'
          Dst:             WLog_Print_dbg_tag
    - 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:    4
      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_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,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:    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:    freerdp_channel_process
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/channels.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          141
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
        - Stream_Pointer
        - Stream_SafeSeekEx
        - WLog_Print_dbg_tag
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/channels.c:122,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/channels.c:126,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/channels.c:131,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/channels.c:139,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/channels.c:140,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/channels.c:141,16'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/channels.c:144,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/channels.c:149,2'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/channels.c:149,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/channels.c:153,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/channels.c:157,9'
          Dst:             Stream_SafeSeekEx
    - functionName:    freerdp_channel_send_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/channels.c'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - short
        - size_t
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          141
      EdgeCount:       41
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Release
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - rdp_send
        - rdp_send_stream_init
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/channels.c:305,15'
          Dst:             rdp_send_stream_init
        - Src:             'libfreerdp/core/channels.c:310,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/channels.c:312,3'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/channels.c:316,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/channels.c:316,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/channels.c:316,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/channels.c:317,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/channels.c:317,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/channels.c:317,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/channels.c:319,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/channels.c:322,9'
          Dst:             rdp_send
    - functionName:    freerdp_channel_send
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/channels.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          239
      EdgeCount:       56
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_channel_send_packet
        - freerdp_settings_get_bool
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/channels.c:61,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/channels.c:62,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/channels.c:65,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/channels.c:78,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/channels.c:85,29'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/channels.c:86,26'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/channels.c:104,8'
          Dst:             freerdp_channel_send_packet
    - functionName:    dump_monitored_desktop
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1115
      functionLinenumberEnd: 1135
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          214
      EdgeCount:       40
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - snprintf
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:1119,2'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:1119,2'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:1122,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:1122,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:1126,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:1126,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:1129,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:1130,4'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:1130,4'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:1132,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:1132,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:1134,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/window.c:1134,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    update_read_desktop_actively_monitored_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1054
      functionLinenumberEnd: 1105
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          186
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - realloc
        - stream_read_u32_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:1057,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:1060,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:1065,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:1068,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/window.c:1070,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:1079,29'
          Dst:             realloc
        - Src:             'libfreerdp/core/window.c:1094,5'
          Dst:             stream_read_u32_le
    - 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:    22
      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_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:    10
      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_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:    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:    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:    update_read_desktop_non_monitored_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1109
      functionLinenumberEnd: 1111
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_read_notify_icon_infotip
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - rail_read_unicode_string
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:288,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:291,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:292,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:293,9'
          Dst:             rail_read_unicode_string
        - Src:             'libfreerdp/core/window.c:294,9'
          Dst:             rail_read_unicode_string
    - functionName:    rail_read_unicode_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          140
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Get_UINT16
        - Stream_Read
        - WLog_Print_dbg_tag
        - _wcsnlen
        - rail_unicode_string_free
        - realloc
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:38,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:40,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:43,25'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/window.c:45,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:50,3'
          Dst:             rail_unicode_string_free
        - Src:             'libfreerdp/core/window.c:54,19'
          Dst:             realloc
        - Src:             'libfreerdp/core/window.c:57,3'
          Dst:             rail_unicode_string_free
        - Src:             'libfreerdp/core/window.c:63,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/window.c:66,6'
          Dst:             _wcsnlen
        - Src:             'libfreerdp/core/window.c:68,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    Stream_Get_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u16_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:369,10'
          Dst:             stream_read_u16_le
    - functionName:    rail_unicode_string_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:112,2'
          Dst:             winpr_int_assert
    - 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:    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:    15
      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:    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:    19
      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:    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:    update_notify_icon_state_order_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 935
      functionLinenumberEnd: 942
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - rail_unicode_string_free
        - update_free_window_icon_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:936,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:937,2'
          Dst:             rail_unicode_string_free
        - Src:             'libfreerdp/core/window.c:938,2'
          Dst:             rail_unicode_string_free
        - Src:             'libfreerdp/core/window.c:939,2'
          Dst:             rail_unicode_string_free
        - Src:             'libfreerdp/core/window.c:940,2'
          Dst:             update_free_window_icon_info
    - functionName:    update_free_window_icon_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1176
      functionLinenumberEnd: 1186
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_read_notification_icon_state_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 946
      functionLinenumberEnd: 992
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          205
      EdgeCount:       56
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - rail_read_unicode_string
        - stream_read_u32_le
        - update_read_cached_icon_info
        - update_read_icon_info
        - update_read_notify_icon_infotip
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:947,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:950,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:953,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:958,8'
          Dst:             rail_read_unicode_string
        - Src:             'libfreerdp/core/window.c:965,8'
          Dst:             update_read_notify_icon_infotip
        - Src:             'libfreerdp/core/window.c:972,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:975,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:980,8'
          Dst:             update_read_icon_info
        - Src:             'libfreerdp/core/window.c:986,8'
          Dst:             update_read_cached_icon_info
    - functionName:    update_read_icon_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         61
      ICount:          407
      EdgeCount:       75
      CyclomaticComplexity: 16
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - WLog_Print_dbg_tag
        - realloc
        - stream_read_u16_le
        - stream_read_u8
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/window.c:176,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/window.c:159,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:162,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:163,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/window.c:164,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/window.c:168,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/window.c:172,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:173,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:181,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:184,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:192,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:195,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:196,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:201,23'
          Dst:             realloc
        - Src:             'libfreerdp/core/window.c:211,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:213,3'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/window.c:226,20'
          Dst:             realloc
        - Src:             'libfreerdp/core/window.c:245,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:247,3'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/window.c:253,23'
          Dst:             realloc
        - Src:             'libfreerdp/core/window.c:263,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:265,3'
          Dst:             Stream_Read
    - functionName:    update_read_cached_icon_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u16_le
        - stream_read_u8
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:278,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:281,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:282,2'
          Dst:             stream_read_u8
    - functionName:    update_read_notification_icon_delete_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 997
      functionLinenumberEnd: 999
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dump_window_style_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 654
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         127
      ICount:          853
      EdgeCount:       151
      CyclomaticComplexity: 26
      functionsReached:
        - snprintf
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:655,2'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:655,2'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:657,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:657,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:659,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:659,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:661,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:661,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:663,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:663,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:665,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:665,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:667,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:667,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:669,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:669,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:671,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:671,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:673,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:673,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:675,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:675,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:677,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:677,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:679,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:679,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:681,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:681,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:683,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:683,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:685,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:685,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:688,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:688,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:691,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:691,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:693,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:693,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:695,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:695,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:697,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:697,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:699,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:699,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:701,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:701,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:703,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:703,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:705,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:705,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:706,2'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:706,2'
          Dst:             snprintf
    - functionName:    dump_window_style
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 604
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         117
      ICount:          787
      EdgeCount:       139
      CyclomaticComplexity: 24
      functionsReached:
        - snprintf
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:605,2'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:605,2'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:607,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:607,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:609,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:609,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:611,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:611,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:613,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:613,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:615,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:615,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:617,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:617,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:619,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:619,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:621,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:621,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:623,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:623,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:625,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:625,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:627,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:627,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:629,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:629,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:631,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:631,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:633,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:633,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:635,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:635,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:637,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:637,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:639,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:639,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:641,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:641,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:643,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:643,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:645,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:645,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:647,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:647,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:649,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:649,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:650,2'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:650,2'
          Dst:             snprintf
    - 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:    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:    8
      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:    dump_window_state_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 855
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         151
      ICount:          1148
      EdgeCount:       175
      CyclomaticComplexity: 26
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - dump_window_style
        - dump_window_style_ex
        - rail_string_to_utf8_string
        - snprintf
        - strnlen
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/window.c:728,3'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/window.c:833,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/window.c:715,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:718,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:718,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:721,3'
          Dst:             dump_window_style
        - Src:             'libfreerdp/core/window.c:722,3'
          Dst:             dump_window_style_ex
        - Src:             'libfreerdp/core/window.c:746,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:746,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:751,17'
          Dst:             rail_string_to_utf8_string
        - Src:             'libfreerdp/core/window.c:754,4'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:754,4'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:758,4'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:758,4'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:761,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:761,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:764,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:764,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:767,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:767,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:771,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:771,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:775,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:775,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:777,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:777,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:779,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:779,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:782,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:782,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:785,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:785,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:790,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:790,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:793,4'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:793,4'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:797,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:797,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:801,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:801,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:806,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:806,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:809,4'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:809,4'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:813,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:813,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:817,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:817,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:820,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:820,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:823,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:823,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:826,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:826,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:829,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:829,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:851,3'
          Dst:             strnlen
        - Src:             'libfreerdp/core/window.c:851,3'
          Dst:             snprintf
        - Src:             'libfreerdp/core/window.c:854,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/window.c:854,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rail_string_to_utf8_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          103
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharNToUtf8Alloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:144,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:145,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:146,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:151,9'
          Dst:             ConvertWCharNToUtf8Alloc
    - functionName:    update_read_window_state_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         206
      ICount:          1013
      EdgeCount:       257
      CyclomaticComplexity: 53
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - rail_read_unicode_string
        - realloc
        - stream_read_i32_le
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:305,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:308,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:313,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:316,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:317,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:322,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:325,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/window.c:330,8'
          Dst:             rail_read_unicode_string
        - Src:             'libfreerdp/core/window.c:336,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:339,3'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/window.c:340,3'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/window.c:345,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:348,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:349,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:354,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:357,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:358,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:363,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:366,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:367,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:372,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:375,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/window.c:380,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:383,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:388,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:391,3'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/window.c:392,3'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/window.c:397,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:400,3'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/window.c:401,3'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/window.c:406,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:409,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:410,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:415,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:418,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:423,29'
          Dst:             realloc
        - Src:             'libfreerdp/core/window.c:434,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:440,5'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:441,5'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:442,5'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:443,5'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:450,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:453,3'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/window.c:454,3'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/window.c:459,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:462,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:467,29'
          Dst:             realloc
        - Src:             'libfreerdp/core/window.c:478,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:485,5'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:486,5'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:487,5'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:488,5'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:496,8'
          Dst:             rail_read_unicode_string
        - Src:             'libfreerdp/core/window.c:507,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:510,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/window.c:515,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:518,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/window.c:523,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:526,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/window.c:531,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:534,3'
          Dst:             stream_read_u8
    - functionName:    update_read_window_delete_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_read_window_cached_icon_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 554
      functionLinenumberEnd: 557
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - update_read_cached_icon_info
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:556,9'
          Dst:             update_read_cached_icon_info
    - functionName:    update_read_window_icon_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 550
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
        - update_read_icon_info
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:544,38'
          Dst:             calloc
        - Src:             'libfreerdp/core/window.c:549,9'
          Dst:             update_read_icon_info
    - 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:    update_recv_desktop_info_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1139
      functionLinenumberEnd: 1172
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          199
      EdgeCount:       55
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - dump_monitored_desktop
        - update_cast
        - update_read_desktop_actively_monitored_order
        - update_read_desktop_non_monitored_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:1140,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/window.c:1145,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:1146,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:1147,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:1148,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:1152,3'
          Dst:             update_read_desktop_non_monitored_order
        - Src:             'libfreerdp/core/window.c:1153,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/window.c:1153,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/window.c:1155,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/window.c:1160,12'
          Dst:             update_read_desktop_actively_monitored_order
        - Src:             'libfreerdp/core/window.c:1164,4'
          Dst:             dump_monitored_desktop
        - Src:             'libfreerdp/core/window.c:1166,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.h:171,2'
          Dst:             winpr_int_assert
    - functionName:    update_recv_notification_icon_info_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1003
      functionLinenumberEnd: 1049
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         79
      ICount:          300
      EdgeCount:       89
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - stream_read_u32_le
        - update_cast
        - update_notify_icon_state_order_free
        - update_read_notification_icon_delete_order
        - update_read_notification_icon_state_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:1004,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/window.c:1009,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:1010,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:1011,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:1012,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:1014,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:1017,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:1018,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:1022,3'
          Dst:             update_read_notification_icon_delete_order
        - Src:             'libfreerdp/core/window.c:1023,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/window.c:1023,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/window.c:1024,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/window.c:1029,12'
          Dst:             update_read_notification_icon_state_order
        - Src:             'libfreerdp/core/window.c:1036,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/window.c:1036,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/window.c:1037,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/window.c:1041,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/window.c:1041,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/window.c:1042,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/window.c:1045,3'
          Dst:             update_notify_icon_state_order_free
    - functionName:    update_recv_window_info_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 859
      functionLinenumberEnd: 932
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         99
      ICount:          422
      EdgeCount:       115
      CyclomaticComplexity: 18
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - dump_window_state_order
        - stream_read_u32_le
        - update_cast
        - update_free_window_icon_info
        - update_free_window_state
        - update_read_window_cached_icon_order
        - update_read_window_delete_order
        - update_read_window_icon_order
        - update_read_window_state_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:860,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/window.c:866,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:867,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:868,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:869,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:871,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:874,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:879,12'
          Dst:             update_read_window_icon_order
        - Src:             'libfreerdp/core/window.c:883,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/window.c:883,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/window.c:885,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/window.c:888,3'
          Dst:             update_free_window_icon_info
        - Src:             'libfreerdp/core/window.c:894,12'
          Dst:             update_read_window_cached_icon_order
        - Src:             'libfreerdp/core/window.c:898,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/window.c:898,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/window.c:900,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/window.c:905,3'
          Dst:             update_read_window_delete_order
        - Src:             'libfreerdp/core/window.c:906,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/window.c:906,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/window.c:907,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/window.c:912,12'
          Dst:             update_read_window_state_order
        - Src:             'libfreerdp/core/window.c:918,5'
          Dst:             dump_window_state_order
        - Src:             'libfreerdp/core/window.c:919,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/window.c:923,5'
          Dst:             dump_window_state_order
        - Src:             'libfreerdp/core/window.c:924,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/window.c:927,4'
          Dst:             update_free_window_state
    - functionName:    window_order_supported
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 592
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          73
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_get_bool
        - freerdp_settings_get_uint32
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/window.c:578,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/window.c:576,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/window.c:578,10'
          Dst:             freerdp_settings_get_uint32
    - functionName:    update_recv_altsec_window_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1189
      functionLinenumberEnd: 1228
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          195
      EdgeCount:       49
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - stream_read_u32_le
        - update_cast
        - update_recv_desktop_info_order
        - update_recv_notification_icon_info_order
        - update_recv_window_info_order
        - window_order_supported
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:1194,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/window.c:1196,14'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/window.c:1198,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/window.c:1201,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/window.c:1202,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/window.c:1206,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/window.c:1206,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/window.c:1210,7'
          Dst:             window_order_supported
        - Src:             'libfreerdp/core/window.c:1212,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/window.c:1217,8'
          Dst:             update_recv_window_info_order
        - Src:             'libfreerdp/core/window.c:1219,8'
          Dst:             update_recv_notification_icon_info_order
        - Src:             'libfreerdp/core/window.c:1221,8'
          Dst:             update_recv_desktop_info_order
        - Src:             'libfreerdp/core/window.c:1224,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/window.c:1224,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    utf8_string_to_rail_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          165
      EdgeCount:       48
      CyclomaticComplexity: 9
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - rail_unicode_string_free
        - strlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:120,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:122,2'
          Dst:             rail_unicode_string_free
        - Src:             'libfreerdp/core/window.c:124,17'
          Dst:             strlen
        - Src:             'libfreerdp/core/window.c:128,18'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/core/window.c:138,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:138,27'
          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:    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:    rail_write_unicode_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          97
      EdgeCount:       28
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - WLog_Print_dbg_tag
        - rail_write_unicode_string_value
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:100,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/window.c:102,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/window.c:106,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:106,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:106,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/window.c:107,9'
          Dst:             rail_write_unicode_string_value
    - functionName:    rail_write_unicode_string_value
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/window.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          85
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/window.c:80,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/window.c:83,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/window.c:85,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/window.c:89,3'
          Dst:             Stream_Write
    - 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:    1
      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:    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_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:    1
      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:    2
      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:    peer_recv_data_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         76
      ICount:          314
      EdgeCount:       86
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - input_recv
        - mcs_send_disconnect_provider_ultimatum
        - rdp_read_share_data_header
        - rdp_recv_client_synchronize_pdu
        - rdp_server_accept_client_control_pdu
        - rdp_server_accept_client_font_list_pdu
        - rdp_server_accept_client_persistent_key_list_pdu
        - stream_read_u32_le
        - update_read_refresh_rect
        - update_read_suppress_output
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/peer.c:359,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:340,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:341,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:342,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:344,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:345,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:348,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:350,7'
          Dst:             rdp_read_share_data_header
        - Src:             'libfreerdp/core/peer.c:362,9'
          Dst:             rdp_recv_client_synchronize_pdu
        - Src:             'libfreerdp/core/peer.c:368,9'
          Dst:             rdp_server_accept_client_control_pdu
        - Src:             'libfreerdp/core/peer.c:374,9'
          Dst:             input_recv
        - Src:             'libfreerdp/core/peer.c:380,9'
          Dst:             rdp_server_accept_client_persistent_key_list_pdu
        - Src:             'libfreerdp/core/peer.c:385,9'
          Dst:             rdp_server_accept_client_font_list_pdu
        - Src:             'libfreerdp/core/peer.c:391,4'
          Dst:             mcs_send_disconnect_provider_ultimatum
        - Src:             'libfreerdp/core/peer.c:393,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:397,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/peer.c:400,4'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/peer.c:409,9'
          Dst:             update_read_refresh_rect
        - Src:             'libfreerdp/core/peer.c:415,9'
          Dst:             update_read_suppress_output
        - Src:             'libfreerdp/core/peer.c:421,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:    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:    peer_recv_fastpath_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 651
      functionLinenumberEnd: 683
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          159
      EdgeCount:       47
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - fastpath_decrypt
        - fastpath_read_header_rdp
        - fastpath_recv_inputs
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:657,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:658,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:659,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:662,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:665,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:667,7'
          Dst:             fastpath_read_header_rdp
        - Src:             'libfreerdp/core/peer.c:671,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:674,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/peer.c:677,7'
          Dst:             fastpath_decrypt
        - Src:             'libfreerdp/core/peer.c:682,9'
          Dst:             fastpath_recv_inputs
    - functionName:    peer_recv_tpkt_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         80
      ICount:          373
      EdgeCount:       93
      CyclomaticComplexity: 15
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_SafeSeekEx
        - WLog_Print_dbg_tag
        - freerdp_channel_peer_process
        - freerdp_shall_disconnect_context
        - pdu_type_to_str
        - peer_recv_data_pdu
        - rdp_get_state
        - rdp_handle_message_channel
        - rdp_handle_optional_rdp_decryption
        - rdp_read_header
        - rdp_read_security_header
        - rdp_read_share_control_header
        - rdp_recv_message_channel_pdu
        - rdp_server_accept_confirm_active
        - tpkt_ensure_stream_consumed_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/peer.c:474,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:437,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:438,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:439,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:442,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:443,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:446,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:448,7'
          Dst:             rdp_read_header
        - Src:             'libfreerdp/core/peer.c:452,6'
          Dst:             freerdp_shall_disconnect_context
        - Src:             'libfreerdp/core/peer.c:455,6'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/peer.c:457,10'
          Dst:             rdp_handle_message_channel
        - Src:             'libfreerdp/core/peer.c:460,7'
          Dst:             rdp_handle_optional_rdp_decryption
        - Src:             'libfreerdp/core/peer.c:468,8'
          Dst:             rdp_read_share_control_header
        - Src:             'libfreerdp/core/peer.c:473,3'
          Dst:             pdu_type_to_str
        - Src:             'libfreerdp/core/peer.c:473,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:477,10'
          Dst:             peer_recv_data_pdu
        - Src:             'libfreerdp/core/peer.c:481,10'
          Dst:             rdp_server_accept_confirm_active
        - Src:             'libfreerdp/core/peer.c:489,10'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/peer.c:491,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/peer.c:491,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:498,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:506,9'
          Dst:             rdp_read_security_header
        - Src:             'libfreerdp/core/peer.c:510,10'
          Dst:             rdp_recv_message_channel_pdu
        - Src:             'libfreerdp/core/peer.c:514,8'
          Dst:             freerdp_channel_peer_process
        - Src:             'libfreerdp/core/peer.c:517,7'
          Dst:             tpkt_ensure_stream_consumed_
    - functionName:    rdp_peer_handle_state_active
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 781
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          153
      EdgeCount:       43
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:744,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:745,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:753,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:757,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:768,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:772,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    peer_unexpected_client_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 702
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - rdp_finalize_flags_to_str
        - rdp_get_state_string
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:700,2'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/peer.c:700,2'
          Dst:             rdp_finalize_flags_to_str
        - Src:             'libfreerdp/core/peer.c:700,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    peer_recv_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - peer_recv_fastpath_pdu
        - peer_recv_tpkt_pdu
        - tpkt_verify_header
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:687,11'
          Dst:             tpkt_verify_header
        - Src:             'libfreerdp/core/peer.c:690,10'
          Dst:             peer_recv_tpkt_pdu
        - Src:             'libfreerdp/core/peer.c:692,10'
          Dst:             peer_recv_fastpath_pdu
    - functionName:    peer_recv_handle_licensing
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 647
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         50
      ICount:          174
      EdgeCount:       53
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_settings_get_bool
        - license_get_state
        - license_send_valid_client_error_packet
        - license_server_configure
        - license_server_send_request
        - peer_recv_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/peer.c:613,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:603,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:604,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:605,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:608,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:611,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:613,10'
          Dst:             license_get_state
        - Src:             'libfreerdp/core/peer.c:618,8'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/peer.c:622,10'
          Dst:             license_server_configure
        - Src:             'libfreerdp/core/peer.c:624,15'
          Dst:             license_server_send_request
        - Src:             'libfreerdp/core/peer.c:631,9'
          Dst:             license_send_valid_client_error_packet
        - Src:             'libfreerdp/core/peer.c:643,10'
          Dst:             peer_recv_pdu
    - functionName:    peer_recv_handle_auto_detect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 595
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         64
      ICount:          233
      EdgeCount:       66
      CyclomaticComplexity: 4
      functionsReached:
        - autodetect_get_state
        - autodetect_on_connect_time_auto_detect_begin
        - autodetect_on_connect_time_auto_detect_progress
        - freerdp_settings_get_bool
        - peer_recv_pdu
        - rdp_get_state
        - rdp_server_transition_to_state
        - state_run_success
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/peer.c:540,3'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/peer.c:544,5'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/peer.c:566,6'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:528,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:529,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:530,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:533,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:536,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:538,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/peer.c:540,11'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/peer.c:543,5'
          Dst:             autodetect_on_connect_time_auto_detect_begin
        - Src:             'libfreerdp/core/peer.c:544,13'
          Dst:             autodetect_get_state
        - Src:             'libfreerdp/core/peer.c:548,12'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:554,12'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:562,11'
          Dst:             peer_recv_pdu
        - Src:             'libfreerdp/core/peer.c:563,9'
          Dst:             state_run_success
        - Src:             'libfreerdp/core/peer.c:565,6'
          Dst:             autodetect_on_connect_time_auto_detect_progress
        - Src:             'libfreerdp/core/peer.c:566,14'
          Dst:             autodetect_get_state
        - Src:             'libfreerdp/core/peer.c:573,13'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:582,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:588,8'
          Dst:             rdp_server_transition_to_state
    - functionName:    peer_recv_callback_internal
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 1169
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         293
      ICount:          1304
      EdgeCount:       356
      CyclomaticComplexity: 65
      functionsReached:
        - Stream_GetRemainingLength
        - WLog_Print_dbg_tag
        - display_convert_rdp_monitor_to_monitor_def
        - freerdp_display_send_monitor_layout
        - freerdp_settings_enforce_consistency
        - freerdp_settings_get_bool
        - freerdp_settings_get_uint32
        - freerdp_settings_set_pointer_array
        - freerdp_settings_set_uint32
        - multitransport_server_request
        - nego_free_nla
        - nego_get_identity
        - nego_get_selected_protocol
        - peer_recv_handle_auto_detect
        - peer_recv_handle_licensing
        - peer_recv_pdu
        - peer_unexpected_client_message
        - rdp_finalize_is_flag_set
        - rdp_get_state
        - rdp_get_state_string
        - rdp_peer_handle_state_active
        - rdp_peer_handle_state_demand_active
        - rdp_recv_client_info
        - rdp_send_server_control_granted_pdu
        - rdp_server_accept_mcs_attach_user_request
        - rdp_server_accept_mcs_channel_join_request
        - rdp_server_accept_mcs_connect_initial
        - rdp_server_accept_mcs_erect_domain_request
        - rdp_server_accept_nego
        - rdp_server_establish_keys
        - rdp_server_transition_to_state
        - sspi_CopyAuthIdentity
        - state_run_failed
        - state_run_success
        - update_reset_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/peer.c:805,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/peer.c:962,5'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:790,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:791,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:792,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:795,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:798,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:802,37'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/peer.c:805,10'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/peer.c:808,9'
          Dst:             freerdp_settings_enforce_consistency
        - Src:             'libfreerdp/core/peer.c:810,13'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:815,9'
          Dst:             rdp_server_accept_nego
        - Src:             'libfreerdp/core/peer.c:817,5'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/peer.c:817,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:821,37'
          Dst:             nego_get_selected_protocol
        - Src:             'libfreerdp/core/peer.c:832,41'
          Dst:             nego_get_identity
        - Src:             'libfreerdp/core/peer.c:833,10'
          Dst:             sspi_CopyAuthIdentity
        - Src:             'libfreerdp/core/peer.c:836,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:838,6'
          Dst:             nego_free_nla
        - Src:             'libfreerdp/core/peer.c:843,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:849,10'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:856,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:860,9'
          Dst:             rdp_server_accept_mcs_connect_initial
        - Src:             'libfreerdp/core/peer.c:862,5'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/peer.c:862,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:873,9'
          Dst:             rdp_server_accept_mcs_erect_domain_request
        - Src:             'libfreerdp/core/peer.c:875,5'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/peer.c:875,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:886,9'
          Dst:             rdp_server_accept_mcs_attach_user_request
        - Src:             'libfreerdp/core/peer.c:888,5'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/peer.c:888,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:899,9'
          Dst:             rdp_server_accept_mcs_channel_join_request
        - Src:             'libfreerdp/core/peer.c:901,5'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/peer.c:901,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:913,9'
          Dst:             rdp_server_establish_keys
        - Src:             'libfreerdp/core/peer.c:915,5'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/peer.c:915,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:922,8'
          Dst:             state_run_success
        - Src:             'libfreerdp/core/peer.c:924,10'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:926,14'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/peer.c:932,8'
          Dst:             rdp_recv_client_info
        - Src:             'libfreerdp/core/peer.c:934,9'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:942,10'
          Dst:             peer_recv_handle_auto_detect
        - Src:             'libfreerdp/core/peer.c:946,10'
          Dst:             peer_recv_handle_licensing
        - Src:             'libfreerdp/core/peer.c:949,10'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:960,11'
          Dst:             multitransport_server_request
        - Src:             'libfreerdp/core/peer.c:965,12'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:971,12'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:981,9'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:987,10'
          Dst:             peer_recv_pdu
        - Src:             'libfreerdp/core/peer.c:991,10'
          Dst:             rdp_peer_handle_state_demand_active
        - Src:             'libfreerdp/core/peer.c:995,8'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/peer.c:1007,9'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/peer.c:1009,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/peer.c:1010,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/peer.c:1013,41'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1013,41'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1014,42'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1014,42'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1023,11'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/peer.c:1026,16'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/peer.c:1029,9'
          Dst:             state_run_failed
        - Src:             'libfreerdp/core/peer.c:1032,15'
          Dst:             display_convert_rdp_monitor_to_monitor_def
        - Src:             'libfreerdp/core/peer.c:1037,15'
          Dst:             freerdp_display_send_monitor_layout
        - Src:             'libfreerdp/core/peer.c:1046,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/peer.c:1047,10'
          Dst:             state_run_failed
        - Src:             'libfreerdp/core/peer.c:1052,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/peer.c:1058,8'
          Dst:             state_run_success
        - Src:             'libfreerdp/core/peer.c:1060,10'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:1071,10'
          Dst:             peer_recv_pdu
        - Src:             'libfreerdp/core/peer.c:1075,10'
          Dst:             peer_recv_pdu
        - Src:             'libfreerdp/core/peer.c:1076,8'
          Dst:             rdp_finalize_is_flag_set
        - Src:             'libfreerdp/core/peer.c:1078,10'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:1082,11'
          Dst:             peer_unexpected_client_message
        - Src:             'libfreerdp/core/peer.c:1085,10'
          Dst:             peer_recv_pdu
        - Src:             'libfreerdp/core/peer.c:1086,8'
          Dst:             rdp_finalize_is_flag_set
        - Src:             'libfreerdp/core/peer.c:1088,10'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:1093,11'
          Dst:             peer_unexpected_client_message
        - Src:             'libfreerdp/core/peer.c:1096,10'
          Dst:             peer_recv_pdu
        - Src:             'libfreerdp/core/peer.c:1097,8'
          Dst:             rdp_finalize_is_flag_set
        - Src:             'libfreerdp/core/peer.c:1099,10'
          Dst:             rdp_send_server_control_granted_pdu
        - Src:             'libfreerdp/core/peer.c:1101,15'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:1106,11'
          Dst:             peer_unexpected_client_message
        - Src:             'libfreerdp/core/peer.c:1109,8'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/peer.c:1110,9'
          Dst:             rdp_finalize_is_flag_set
        - Src:             'libfreerdp/core/peer.c:1112,11'
          Dst:             peer_recv_pdu
        - Src:             'libfreerdp/core/peer.c:1114,9'
          Dst:             rdp_finalize_is_flag_set
        - Src:             'libfreerdp/core/peer.c:1116,11'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:1121,12'
          Dst:             peer_unexpected_client_message
        - Src:             'libfreerdp/core/peer.c:1126,10'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:1133,10'
          Dst:             peer_recv_pdu
        - Src:             'libfreerdp/core/peer.c:1134,8'
          Dst:             state_run_success
        - Src:             'libfreerdp/core/peer.c:1136,9'
          Dst:             rdp_finalize_is_flag_set
        - Src:             'libfreerdp/core/peer.c:1138,11'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/peer.c:1142,7'
          Dst:             update_reset_state
        - Src:             'libfreerdp/core/peer.c:1147,12'
          Dst:             peer_unexpected_client_message
        - Src:             'libfreerdp/core/peer.c:1152,10'
          Dst:             rdp_peer_handle_state_active
        - Src:             'libfreerdp/core/peer.c:1154,11'
          Dst:             peer_recv_pdu
        - Src:             'libfreerdp/core/peer.c:1163,4'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/peer.c:1163,4'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/peer.c:1163,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rdp_peer_handle_state_demand_active
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 706
      functionLinenumberEnd: 732
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          123
      EdgeCount:       37
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - rdp_get_state_string
        - rdp_send_demand_active
        - rdp_server_transition_to_state
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:709,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:710,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:713,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:717,3'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/peer.c:717,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:720,12'
          Dst:             rdp_send_demand_active
        - Src:             'libfreerdp/core/peer.c:722,3'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/peer.c:722,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:726,8'
          Dst:             rdp_server_transition_to_state
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    peer_recv_callback
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1172
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          165
      EdgeCount:       41
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_GetPosition
        - Stream_GetRemainingLength
        - Stream_SetPosition
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - peer_recv_callback_internal
        - rdp_get_state_string
        - state_run_continue
        - state_run_result_string
        - transport_get_context
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1175,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/peer.c:1176,30'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/peer.c:1180,9'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/peer.c:1182,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1186,21'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/peer.c:1190,9'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/peer.c:1193,8'
          Dst:             peer_recv_callback_internal
        - Src:             'libfreerdp/core/peer.c:1195,22'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/peer.c:1196,21'
          Dst:             state_run_continue
        - Src:             'libfreerdp/core/peer.c:1198,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/peer.c:1198,3'
          Dst:             rdp_get_state_string
        - Src:             'libfreerdp/core/peer.c:1198,3'
          Dst:             state_run_result_string
        - Src:             'libfreerdp/core/peer.c:1198,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/peer.c:1202,11'
          Dst:             state_run_continue
    - 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_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:    1
      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:    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:    freerdp_peer_nolicense
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1327
      functionLinenumberEnd: 1342
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          67
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - license_send_valid_client_error_packet
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1330,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1331,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1335,7'
          Dst:             license_send_valid_client_error_packet
        - Src:             'libfreerdp/core/peer.c:1337,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_peer_transport_setup
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1513
      functionLinenumberEnd: 1533
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          109
      EdgeCount:       31
      CyclomaticComplexity: 5
      functionsReached:
        - peer_recv_callback
        - transport_attach
        - transport_set_blocking_mode
        - transport_set_recv_callbacks
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1516,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1517,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1520,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1522,7'
          Dst:             transport_attach
        - Src:             'libfreerdp/core/peer.c:1526,7'
          Dst:             transport_set_recv_callbacks
        - Src:             'libfreerdp/core/peer.c:1526,7'
          Dst:             peer_recv_callback
        - Src:             'libfreerdp/core/peer.c:1529,7'
          Dst:             transport_set_blocking_mode
    - functionName:    freerdp_peer_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1502
      functionLinenumberEnd: 1510
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - closesocket
        - sspi_FreeAuthIdentity
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1506,2'
          Dst:             sspi_FreeAuthIdentity
        - Src:             'libfreerdp/core/peer.c:1508,3'
          Dst:             closesocket
    - functionName:    freerdp_peer_set_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          51
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_server_transition_to_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:231,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:232,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:233,9'
          Dst:             rdp_server_transition_to_state
    - functionName:    freerdp_peer_virtual_channel_set_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          51
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:221,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_peer_virtual_channel_get_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          48
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:209,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_peer_virtual_channel_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         93
      ICount:          344
      EdgeCount:       101
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Release
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - rdp_send
        - rdp_send_stream_init
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:139,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:140,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:143,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:144,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:151,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:152,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:163,7'
          Dst:             rdp_send_stream_init
        - Src:             'libfreerdp/core/peer.c:181,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:181,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:181,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/peer.c:182,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:182,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:182,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/peer.c:184,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/peer.c:186,4'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/peer.c:190,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/peer.c:192,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:193,8'
          Dst:             rdp_send
    - functionName:    freerdp_peer_virtual_channel_close
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          69
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - server_channel_common_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:114,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:121,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:123,2'
          Dst:             server_channel_common_free
    - functionName:    freerdp_peer_virtual_channel_open
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          246
      EdgeCount:       68
      CyclomaticComplexity: 10
      functionsReached:
        - _strnicmp
        - server_channel_common_new
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:51,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:52,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:53,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:54,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:56,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:61,24'
          Dst:             strnlen
        - Src:             'libfreerdp/core/peer.c:76,7'
          Dst:             _strnicmp
        - Src:             'libfreerdp/core/peer.c:94,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:96,6'
          Dst:             server_channel_common_new
    - functionName:    freerdp_peer_has_more_to_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1318
      functionLinenumberEnd: 1322
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          66
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - transport_have_more_bytes_to_read
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1319,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1320,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1321,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1322,9'
          Dst:             transport_have_more_bytes_to_read
    - functionName:    freerdp_peer_drain_output_buffer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1307
      functionLinenumberEnd: 1314
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          88
      EdgeCount:       27
      CyclomaticComplexity: 2
      functionsReached:
        - transport_drain_output_buffer
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1309,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1310,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1311,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1312,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1314,9'
          Dst:             transport_drain_output_buffer
    - functionName:    freerdp_peer_is_write_blocked
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1296
      functionLinenumberEnd: 1303
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          88
      EdgeCount:       27
      CyclomaticComplexity: 2
      functionsReached:
        - transport_is_write_blocked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1298,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1299,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1300,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1301,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1303,9'
          Dst:             transport_is_write_blocked
    - functionName:    freerdp_peer_send_server_redirection_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1265
      functionLinenumberEnd: 1282
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          104
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Release
        - rdp_reset_runtime_settings
        - rdp_send_pdu
        - rdp_send_stream_pdu_init
        - rdp_write_enhanced_security_redirection_packet
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1268,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1271,15'
          Dst:             rdp_send_stream_pdu_init
        - Src:             'libfreerdp/core/peer.c:1274,7'
          Dst:             rdp_write_enhanced_security_redirection_packet
        - Src:             'libfreerdp/core/peer.c:1276,7'
          Dst:             rdp_send_pdu
        - Src:             'libfreerdp/core/peer.c:1278,7'
          Dst:             rdp_reset_runtime_settings
        - Src:             'libfreerdp/core/peer.c:1280,2'
          Dst:             Stream_Release
    - functionName:    freerdp_peer_send_channel_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1287
      functionLinenumberEnd: 1292
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - short
        - size_t
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          79
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_channel_send_packet
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1288,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1289,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1290,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1291,9'
          Dst:             rdp_channel_send_packet
    - functionName:    freerdp_peer_send_channel_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1256
      functionLinenumberEnd: 1260
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          73
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_send_channel_data
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1257,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1258,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1259,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1260,9'
          Dst:             rdp_send_channel_data
    - functionName:    freerdp_peer_disconnect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1246
      functionLinenumberEnd: 1252
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_get_transport
        - transport_disconnect
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1248,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1250,14'
          Dst:             freerdp_get_transport
        - Src:             'libfreerdp/core/peer.c:1251,2'
          Dst:             transport_disconnect
    - functionName:    freerdp_peer_close
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1208
      functionLinenumberEnd: 1243
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          139
      EdgeCount:       41
      CyclomaticComplexity: 6
      functionsReached:
        - freerdp_settings_get_bool
        - mcs_send_disconnect_provider_ultimatum
        - nego_get_selected_protocol
        - rdp_send_deactivate_all
        - rdp_send_error_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1212,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1215,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1216,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1217,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1222,21'
          Dst:             nego_get_selected_protocol
        - Src:             'libfreerdp/core/peer.c:1232,7'
          Dst:             rdp_send_deactivate_all
        - Src:             'libfreerdp/core/peer.c:1235,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/peer.c:1237,8'
          Dst:             rdp_send_error_info
        - Src:             'libfreerdp/core/peer.c:1241,9'
          Dst:             mcs_send_disconnect_provider_ultimatum
    - functionName:    freerdp_peer_check_fds
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          59
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_check_fds
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:321,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:322,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:325,11'
          Dst:             rdp_check_fds
    - functionName:    freerdp_peer_get_event_handles
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          72
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - transport_get_event_handles
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:310,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:311,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:312,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:313,9'
          Dst:             transport_get_event_handles
    - functionName:    freerdp_peer_get_event_handle
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          74
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - transport_get_front_bio
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:299,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:300,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:301,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:304,11'
          Dst:             transport_get_front_bio
    - functionName:    freerdp_peer_initialize
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          165
      EdgeCount:       45
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_certificate_is_rdp_security_compatible
        - freerdp_settings_get_bool
        - freerdp_settings_get_pointer
        - freerdp_settings_set_bool
        - nego_set_RCG_supported
        - nego_set_restricted_admin_mode_supported
        - rdp_server_transition_to_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:241,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:242,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:245,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:248,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:255,6'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/core/peer.c:258,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:262,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/peer.c:265,8'
          Dst:             freerdp_certificate_is_rdp_security_compatible
        - Src:             'libfreerdp/core/peer.c:267,9'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/peer.c:269,9'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/peer.c:274,2'
          Dst:             nego_set_RCG_supported
        - Src:             'libfreerdp/core/peer.c:275,2'
          Dst:             nego_set_restricted_admin_mode_supported
        - Src:             'libfreerdp/core/peer.c:277,10'
          Dst:             rdp_server_transition_to_state
    - functionName:    freerdp_peer_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1462
      functionLinenumberEnd: 1499
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          108
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - calloc
        - freerdp_tcp_set_nodelay
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1463,40'
          Dst:             calloc
        - Src:             'libfreerdp/core/peer.c:1470,33'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/peer.c:1470,9'
          Dst:             freerdp_tcp_set_nodelay
    - functionName:    os_minor_type_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1418
      functionLinenumberEnd: 1446
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          69
      EdgeCount:       26
      CyclomaticComplexity: 14
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/peer.c:1419,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    freerdp_peer_os_minor_type_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1449
      functionLinenumberEnd: 1458
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          81
      EdgeCount:       27
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_settings_get_uint32
        - os_minor_type_to_string
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1450,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1453,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1454,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1456,29'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/peer.c:1457,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1458,9'
          Dst:             os_minor_type_to_string
    - functionName:    os_major_type_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1376
      functionLinenumberEnd: 1402
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          64
      EdgeCount:       24
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/peer.c:1377,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    freerdp_peer_os_major_type_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1405
      functionLinenumberEnd: 1414
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          81
      EdgeCount:       27
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_settings_get_uint32
        - os_major_type_to_string
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1406,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1409,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1410,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1412,29'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/peer.c:1413,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1414,9'
          Dst:             os_major_type_to_string
    - functionName:    freerdp_peer_context_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1350
      functionLinenumberEnd: 1373
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          105
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - CloseHandle
        - WLog_Print_dbg_tag
        - metrics_free
        - rdp_free
        - stream_dump_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1354,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:1360,9'
          Dst:             CloseHandle
        - Src:             'libfreerdp/core/peer.c:1364,3'
          Dst:             rdp_free
        - Src:             'libfreerdp/core/peer.c:1366,3'
          Dst:             metrics_free
        - Src:             'libfreerdp/core/peer.c:1368,3'
          Dst:             stream_dump_free
    - functionName:    freerdp_peer_context_new_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1536
      functionLinenumberEnd: 1615
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          265
      EdgeCount:       54
      CyclomaticComplexity: 15
      functionsReached:
        - CreateEventA
        - WLog_Get
        - WLog_Print_dbg_tag
        - autodetect_register_server_callbacks
        - calloc
        - freerdp_peer_context_free
        - freerdp_peer_transport_setup
        - freerdp_settings_clone
        - metrics_new
        - rdp_log_build_warnings
        - rdp_new
        - stream_dump_new
        - update_register_server_callbacks
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1544,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/peer.c:1545,31'
          Dst:             calloc
        - Src:             'libfreerdp/core/peer.c:1551,17'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/peer.c:1557,23'
          Dst:             freerdp_settings_clone
        - Src:             'libfreerdp/core/peer.c:1562,18'
          Dst:             stream_dump_new
        - Src:             'libfreerdp/core/peer.c:1565,27'
          Dst:             metrics_new
        - Src:             'libfreerdp/core/peer.c:1568,14'
          Dst:             rdp_new
        - Src:             'libfreerdp/core/peer.c:1571,2'
          Dst:             rdp_log_build_warnings
        - Src:             'libfreerdp/core/peer.c:1583,2'
          Dst:             update_register_server_callbacks
        - Src:             'libfreerdp/core/peer.c:1584,2'
          Dst:             autodetect_register_server_callbacks
        - Src:             'libfreerdp/core/peer.c:1586,37'
          Dst:             CreateEventA
        - Src:             'libfreerdp/core/peer.c:1588,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:1592,36'
          Dst:             calloc
        - Src:             'libfreerdp/core/peer.c:1594,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:1598,7'
          Dst:             freerdp_peer_transport_setup
        - Src:             'libfreerdp/core/peer.c:1605,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:1612,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/peer.c:1613,2'
          Dst:             freerdp_peer_context_free
    - functionName:    freerdp_peer_context_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/peer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1345
      functionLinenumberEnd: 1346
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_peer_context_new_ex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/peer.c:1346,9'
          Dst:             freerdp_peer_context_new_ex
    - 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:    4
      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_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_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:    display_write_monitor_layout_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/display.c'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         94
      ICount:          276
      EdgeCount:       96
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_INT32_unchecked
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/display.c:25,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/display.c:28,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/display.c:28,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/display.c:28,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/display.c:34,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/display.c:34,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/display.c:34,3'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/display.c:35,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/display.c:35,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/display.c:35,3'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/display.c:36,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/display.c:36,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/display.c:36,3'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/display.c:37,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/display.c:37,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/display.c:37,3'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/display.c:38,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/display.c:38,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/display.c:38,3'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    freerdp_display_send_monitor_layout
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/display.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          61
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Release
        - display_write_monitor_layout_pdu
        - rdp_data_pdu_init
        - rdp_send_data_pdu
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/display.c:79,16'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/display.c:84,7'
          Dst:             display_write_monitor_layout_pdu
        - Src:             'libfreerdp/core/display.c:86,3'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/display.c:90,9'
          Dst:             rdp_send_data_pdu
    - functionName:    display_convert_rdp_monitor_to_monitor_def
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/display.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          137
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/display.c:53,23'
          Dst:             calloc
    - 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:    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_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:    12
      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:    rdstls_result_code_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 109
      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:   'libfreerdp/core/rdstls.c:88,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    rdstls_process_authentication_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 991
      functionLinenumberEnd: 1053
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         49
      ICount:          231
      EdgeCount:       57
      CyclomaticComplexity: 10
      functionsReached:
        - GetSecurityStatusString
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT16
        - Stream_Get_UINT32
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - Win32ErrorCode2Tag
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - rdstls_check_state_requirements_
        - rdstls_required_role_is_server_
        - rdstls_result_code_str
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/rdstls.c:1016,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:992,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:994,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:997,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdstls.c:1000,26'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1003,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:1003,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:1009,28'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/rdstls.c:1012,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:1012,3'
          Dst:             rdstls_result_code_str
        - Src:             'libfreerdp/core/rdstls.c:1012,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:1040,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:1040,5'
          Dst:             GetSecurityStatusString
        - Src:             'libfreerdp/core/rdstls.c:1040,5'
          Dst:             Win32ErrorCode2Tag
        - Src:             'libfreerdp/core/rdstls.c:1040,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:1048,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/rdstls.c:1048,3'
          Dst:             freerdp_set_last_error_ex
    - functionName:    rdstls_required_role_is_server_
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          83
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:118,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:123,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:124,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdstls_check_state_requirements_
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          81
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdstls_get_state
        - rdstls_get_state_str
        - winpr_int_assert
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:261,31'
          Dst:             rdstls_get_state
        - Src:             'libfreerdp/core/rdstls.c:265,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:268,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:271,25'
          Dst:             rdstls_get_state_str
        - Src:             'libfreerdp/core/rdstls.c:272,25'
          Dst:             rdstls_get_state_str
        - Src:             'libfreerdp/core/rdstls.c:269,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    Stream_Get_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u16_le
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:369,10'
          Dst:             stream_read_u16_le
    - functionName:    Stream_Get_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u32_le
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:413,10'
          Dst:             stream_read_u32_le
    - 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:    1
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:114,3'
          Dst:             winpr_int_assert
    - functionName:    rdstls_get_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:196,2'
          Dst:             winpr_int_assert
    - functionName:    rdstls_get_state_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    9
      BranchProfiles:
        - Branch String:   'libfreerdp/core/rdstls.c:176,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    rdstls_write_cookie
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         66
      ICount:          184
      EdgeCount:       68
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:348,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:352,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/rdstls.c:355,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:357,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/rdstls.c:360,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:360,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:360,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/rdstls.c:361,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:361,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:361,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/rdstls.c:362,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:362,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:362,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/rdstls.c:363,2'
          Dst:             Stream_Write
    - 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:    20
      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_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:    5
      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
      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:    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_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    rdstls_write_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         71
      ICount:          239
      EdgeCount:       80
      CyclomaticComplexity: 11
      functionsReached:
        - ConvertUtf8ToWChar
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UTF16_String_From_UTF8
        - strlen
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:294,21'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/rdstls.c:296,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/rdstls.c:302,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:303,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/rdstls.c:306,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:307,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/rdstls.c:310,30'
          Dst:             ConvertUtf8ToWChar
        - Src:             'libfreerdp/core/rdstls.c:313,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:313,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:314,22'
          Dst:             strlen
        - Src:             'libfreerdp/core/rdstls.c:316,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:316,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:316,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:318,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/rdstls.c:321,6'
          Dst:             Stream_Write_UTF16_String_From_UTF8
        - Src:             'libfreerdp/core/rdstls.c:324,19'
          Dst:             Stream_GetPosition
    - functionName:    rdstls_write_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          120
      EdgeCount:       38
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:330,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:332,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/rdstls.c:335,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:335,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:335,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:337,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/rdstls.c:340,2'
          Dst:             Stream_Write
    - functionName:    rdstls_check_fedauth_vmid
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          151
      EdgeCount:       45
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - _strnicmp
        - strlen
        - strstr
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:465,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:466,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:471,26'
          Dst:             strstr
        - Src:             'libfreerdp/core/rdstls.c:476,23'
          Dst:             strlen
        - Src:             'libfreerdp/core/rdstls.c:477,24'
          Dst:             _strnicmp
        - Src:             'libfreerdp/core/rdstls.c:481,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:481,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdstls_write_authentication_request_with_cookie
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 454
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         69
      ICount:          186
      EdgeCount:       73
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdstls_check_state_requirements_
        - rdstls_required_role_is_server_
        - rdstls_write_cookie
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:433,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:436,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:436,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:438,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:440,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:444,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:446,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/rdstls.c:449,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:450,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:451,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:451,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:451,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/rdstls.c:453,10'
          Dst:             rdstls_write_cookie
    - functionName:    rdstls_write_authentication_request_with_password
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         63
      ICount:          202
      EdgeCount:       71
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdstls_check_state_requirements_
        - rdstls_required_role_is_server_
        - rdstls_write_data
        - rdstls_write_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:395,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:396,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:398,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:400,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:403,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:403,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:406,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:408,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/rdstls.c:411,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:412,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:414,7'
          Dst:             rdstls_write_data
        - Src:             'libfreerdp/core/rdstls.c:417,6'
          Dst:             rdstls_write_string
        - Src:             'libfreerdp/core/rdstls.c:420,6'
          Dst:             rdstls_write_string
        - Src:             'libfreerdp/core/rdstls.c:423,7'
          Dst:             rdstls_write_data
    - functionName:    rdstls_write_authentication_request_with_fedauth_token
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         90
      ICount:          288
      EdgeCount:       99
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UTF16_String_From_UTF8
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_get_string
        - rdstls_check_fedauth_vmid
        - rdstls_check_state_requirements_
        - rdstls_required_role_is_server_
        - strlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:490,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:491,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:493,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:493,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:495,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:497,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:501,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:503,22'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/rdstls.c:506,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:506,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:511,28'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/rdstls.c:510,2'
          Dst:             rdstls_check_fedauth_vmid
        - Src:             'libfreerdp/core/rdstls.c:513,28'
          Dst:             strlen
        - Src:             'libfreerdp/core/rdstls.c:518,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:518,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:526,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/rdstls.c:529,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:530,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:531,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:531,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:531,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:533,9'
          Dst:             Stream_Write_UTF16_String_From_UTF8
    - functionName:    rdstls_process_capabilities
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 640
      functionLinenumberEnd: 665
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          130
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT16
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdstls_are_some_versions_supported_
        - rdstls_check_state_requirements_
        - rdstls_required_role_is_server_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:641,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:642,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:644,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:647,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdstls.c:650,26'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:653,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:653,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:659,35'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:660,7'
          Dst:             rdstls_are_some_versions_supported_
    - functionName:    rdstls_are_some_versions_supported_
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 613
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - short
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          128
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:592,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:603,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:605,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdstls_recv_authentication_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1285
      functionLinenumberEnd: 1332
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          174
      EdgeCount:       45
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Free
        - Stream_Get_UINT16
        - Stream_New
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdstls_check_state_requirements_
        - rdstls_is_version_supported_
        - rdstls_process_authentication_response
        - rdstls_required_role_is_server_
        - rdstls_set_state
        - transport_read_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/rdstls.c:1316,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:1288,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:1290,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:1293,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:1296,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/rdstls.c:1301,19'
          Dst:             transport_read_pdu
        - Src:             'libfreerdp/core/rdstls.c:1306,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdstls.c:1309,25'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1310,7'
          Dst:             rdstls_is_version_supported_
        - Src:             'libfreerdp/core/rdstls.c:1315,25'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1319,9'
          Dst:             rdstls_process_authentication_response
        - Src:             'libfreerdp/core/rdstls.c:1323,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:1323,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:1328,7'
          Dst:             rdstls_set_state
        - Src:             'libfreerdp/core/rdstls.c:1330,2'
          Dst:             Stream_Free
    - functionName:    rdstls_is_version_supported_
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 636
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          78
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:621,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:626,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:628,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdstls_set_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          183
      EdgeCount:       35
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - check_transition
        - rdstls_get_state_str
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:
        - Branch String:   'libfreerdp/core/rdstls.c:224,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:219,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:221,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:221,2'
          Dst:             rdstls_get_state_str
        - Src:             'libfreerdp/core/rdstls.c:221,2'
          Dst:             rdstls_get_state_str
        - Src:             'libfreerdp/core/rdstls.c:221,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:227,9'
          Dst:             check_transition
        - Src:             'libfreerdp/core/rdstls.c:230,9'
          Dst:             check_transition
        - Src:             'libfreerdp/core/rdstls.c:233,9'
          Dst:             check_transition
        - Src:             'libfreerdp/core/rdstls.c:236,9'
          Dst:             check_transition
        - Src:             'libfreerdp/core/rdstls.c:239,9'
          Dst:             check_transition
        - Src:             'libfreerdp/core/rdstls.c:242,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:242,4'
          Dst:             rdstls_get_state_str
        - Src:             'libfreerdp/core/rdstls.c:242,4'
          Dst:             rdstls_get_state_str
        - Src:             'libfreerdp/core/rdstls.c:242,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    check_transition
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          64
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdstls_get_state_str
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:206,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:206,3'
          Dst:             rdstls_get_state_str
        - Src:             'libfreerdp/core/rdstls.c:206,3'
          Dst:             rdstls_get_state_str
        - Src:             'libfreerdp/core/rdstls.c:206,3'
          Dst:             rdstls_get_state_str
        - Src:             'libfreerdp/core/rdstls.c:206,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdstls_send_authentication_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1214
      functionLinenumberEnd: 1281
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         88
      ICount:          339
      EdgeCount:       103
      CyclomaticComplexity: 17
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Free
        - Stream_New
        - Stream_Write_UINT16_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_get_string
        - rdstls_check_state_requirements_
        - rdstls_get_state
        - rdstls_required_role_is_server_
        - rdstls_set_state
        - rdstls_write_authentication_request_with_cookie
        - rdstls_write_authentication_request_with_fedauth_token
        - rdstls_write_authentication_request_with_password
        - transport_write
        - utils_str_is_empty
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:1215,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:1219,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:1222,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:1225,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/rdstls.c:1229,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:1232,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:1234,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/rdstls.c:1237,29'
          Dst:             rdstls_get_state
        - Src:             'libfreerdp/core/rdstls.c:1238,29'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/rdstls.c:1239,57'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/rdstls.c:1243,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:1243,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:1248,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:1248,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:1248,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:1252,8'
          Dst:             rdstls_write_authentication_request_with_fedauth_token
        - Src:             'libfreerdp/core/rdstls.c:1257,8'
          Dst:             rdstls_write_authentication_request_with_password
        - Src:             'libfreerdp/core/rdstls.c:1262,8'
          Dst:             rdstls_write_authentication_request_with_cookie
        - Src:             'libfreerdp/core/rdstls.c:1267,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:1267,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:1273,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:1274,6'
          Dst:             transport_write
        - Src:             'libfreerdp/core/rdstls.c:1277,7'
          Dst:             rdstls_set_state
        - Src:             'libfreerdp/core/rdstls.c:1279,2'
          Dst:             Stream_Free
    - functionName:    rdstls_recv_capabilities
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1165
      functionLinenumberEnd: 1210
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          161
      EdgeCount:       42
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Free
        - Stream_Get_UINT16
        - Stream_New
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdstls_check_state_requirements_
        - rdstls_is_version_supported_
        - rdstls_process_capabilities
        - rdstls_required_role_is_server_
        - rdstls_set_state
        - transport_read_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/rdstls.c:1194,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:1168,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:1171,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:1174,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/rdstls.c:1178,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:1181,19'
          Dst:             transport_read_pdu
        - Src:             'libfreerdp/core/rdstls.c:1186,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdstls.c:1189,25'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1190,7'
          Dst:             rdstls_is_version_supported_
        - Src:             'libfreerdp/core/rdstls.c:1193,25'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1197,9'
          Dst:             rdstls_process_capabilities
        - Src:             'libfreerdp/core/rdstls.c:1201,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:1201,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:1206,7'
          Dst:             rdstls_set_state
        - Src:             'libfreerdp/core/rdstls.c:1208,2'
          Dst:             Stream_Free
    - functionName:    rdstls_write_authentication_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         50
      ICount:          125
      EdgeCount:       53
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - rdstls_check_state_requirements_
        - rdstls_required_role_is_server_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:539,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:541,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:543,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:545,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/rdstls.c:548,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:549,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:550,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:550,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:550,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - 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:    1
      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:    rdstls_read_cookie
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          104
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT16
        - Stream_Get_UINT32
        - Stream_Read
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:370,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:374,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdstls.c:377,23'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:380,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:380,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:385,18'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/rdstls.c:386,20'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/rdstls.c:387,20'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/rdstls.c:388,2'
          Dst:             Stream_Read
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,3'
          Dst:             winpr_int_assert
    - functionName:    rdstls_cmp_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 747
      functionLinenumberEnd: 766
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          121
      EdgeCount:       42
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - strcmp
        - utils_str_is_empty
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:748,7'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/rdstls.c:750,7'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/rdstls.c:752,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:752,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:756,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:757,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:758,7'
          Dst:             strcmp
        - Src:             'libfreerdp/core/rdstls.c:760,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:760,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdstls_cmp_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 724
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          124
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:729,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:729,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:734,7'
          Dst:             memcmp
        - Src:             'libfreerdp/core/rdstls.c:736,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:736,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdstls_read_unicode_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 669
      functionLinenumberEnd: 689
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT16
        - Stream_Read_UTF16_String_As_UTF8
        - Stream_Seek
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:670,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:672,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdstls.c:675,24'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:677,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdstls.c:683,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/rdstls.c:687,9'
          Dst:             Stream_Read_UTF16_String_As_UTF8
    - functionName:    rdstls_read_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 718
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          107
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_ConstPointer
        - Stream_Get_UINT16
        - Stream_Seek
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:695,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:696,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:700,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdstls.c:703,24'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:705,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdstls.c:710,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/rdstls.c:714,11'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/rdstls.c:716,2'
          Dst:             Stream_Seek
    - functionName:    rdstls_version_required_
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - short
        - short
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:564,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:566,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdstls_process_authentication_request_with_fedauth_token
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 884
      functionLinenumberEnd: 948
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         90
      ICount:          381
      EdgeCount:       109
      CyclomaticComplexity: 21
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT16
        - Stream_Pointer
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_get_string_as_utf16
        - memcmp
        - rdstls_check_state_requirements_
        - rdstls_required_role_is_server_
        - rdstls_version_required_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:885,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:887,7'
          Dst:             rdstls_version_required_
        - Src:             'libfreerdp/core/rdstls.c:889,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:891,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:895,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:895,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:899,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdstls.c:901,26'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:904,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:904,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:909,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:909,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:914,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdstls.c:918,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:922,6'
          Dst:             freerdp_settings_get_string_as_utf16
        - Src:             'libfreerdp/core/rdstls.c:926,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:926,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:933,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:933,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:938,31'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/rdstls.c:938,17'
          Dst:             memcmp
        - Src:             'libfreerdp/core/rdstls.c:942,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:942,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:946,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:946,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdstls_process_authentication_request_with_cookie
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 835
      functionLinenumberEnd: 879
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          236
      EdgeCount:       66
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT32
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_get_pointer
        - freerdp_settings_get_uint32
        - memcmp
        - rdstls_check_state_requirements_
        - rdstls_read_cookie
        - rdstls_required_role_is_server_
        - rdstls_version_required_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:836,7'
          Dst:             rdstls_version_required_
        - Src:             'libfreerdp/core/rdstls.c:839,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:841,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:844,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdstls.c:848,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:850,22'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/rdstls.c:851,28'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/rdstls.c:854,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:854,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:860,7'
          Dst:             rdstls_read_cookie
        - Src:             'libfreerdp/core/rdstls.c:864,6'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/core/rdstls.c:867,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:867,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:871,6'
          Dst:             memcmp
        - Src:             'libfreerdp/core/rdstls.c:873,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:873,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:877,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:877,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdstls_process_authentication_request_with_password
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 771
      functionLinenumberEnd: 830
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          258
      EdgeCount:       60
      CyclomaticComplexity: 13
      functionsReached:
        - freerdp_settings_get_pointer
        - freerdp_settings_get_string
        - freerdp_settings_get_uint32
        - rdstls_check_state_requirements_
        - rdstls_cmp_data
        - rdstls_cmp_str
        - rdstls_read_data
        - rdstls_read_unicode_string
        - rdstls_required_role_is_server_
        - rdstls_version_required_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:772,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:773,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:775,7'
          Dst:             rdstls_version_required_
        - Src:             'libfreerdp/core/rdstls.c:777,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:779,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:791,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:793,7'
          Dst:             rdstls_read_data
        - Src:             'libfreerdp/core/rdstls.c:796,7'
          Dst:             rdstls_read_unicode_string
        - Src:             'libfreerdp/core/rdstls.c:799,7'
          Dst:             rdstls_read_unicode_string
        - Src:             'libfreerdp/core/rdstls.c:802,7'
          Dst:             rdstls_read_unicode_string
        - Src:             'libfreerdp/core/rdstls.c:807,7'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/core/rdstls.c:809,7'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/rdstls.c:810,32'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/rdstls.c:811,30'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/rdstls.c:812,32'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/rdstls.c:814,8'
          Dst:             rdstls_cmp_data
        - Src:             'libfreerdp/core/rdstls.c:818,13'
          Dst:             rdstls_cmp_str
        - Src:             'libfreerdp/core/rdstls.c:820,13'
          Dst:             rdstls_cmp_str
        - Src:             'libfreerdp/core/rdstls.c:822,13'
          Dst:             rdstls_cmp_str
    - functionName:    rdstls_process_authentication_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 952
      functionLinenumberEnd: 987
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          141
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT16
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdstls_check_state_requirements_
        - rdstls_process_authentication_request_with_cookie
        - rdstls_process_authentication_request_with_fedauth_token
        - rdstls_process_authentication_request_with_password
        - rdstls_required_role_is_server_
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/rdstls.c:963,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:953,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:956,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:959,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdstls.c:962,26'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:966,9'
          Dst:             rdstls_process_authentication_request_with_password
        - Src:             'libfreerdp/core/rdstls.c:970,9'
          Dst:             rdstls_process_authentication_request_with_cookie
        - Src:             'libfreerdp/core/rdstls.c:974,9'
          Dst:             rdstls_process_authentication_request_with_fedauth_token
        - Src:             'libfreerdp/core/rdstls.c:978,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:978,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdstls_write_capabilities
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         50
      ICount:          107
      EdgeCount:       51
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:280,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/rdstls.c:283,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:284,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:285,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:286,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:286,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:286,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    rdstls_send_authentication_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1133
      functionLinenumberEnd: 1161
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          125
      EdgeCount:       37
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Free
        - Stream_New
        - Stream_Write_UINT16_unchecked
        - rdstls_check_state_requirements_
        - rdstls_required_role_is_server_
        - rdstls_set_state
        - rdstls_write_authentication_response
        - transport_write
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:1136,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:1139,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:1142,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/rdstls.c:1146,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/rdstls.c:1149,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:1149,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:1149,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/rdstls.c:1151,7'
          Dst:             rdstls_write_authentication_response
        - Src:             'libfreerdp/core/rdstls.c:1154,6'
          Dst:             transport_write
        - Src:             'libfreerdp/core/rdstls.c:1157,7'
          Dst:             rdstls_set_state
        - Src:             'libfreerdp/core/rdstls.c:1159,2'
          Dst:             Stream_Free
    - functionName:    rdstls_recv_authentication_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1083
      functionLinenumberEnd: 1129
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          179
      EdgeCount:       48
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Free
        - Stream_Get_UINT16
        - Stream_New
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdstls_check_state_requirements_
        - rdstls_is_version_supported_
        - rdstls_process_authentication_request
        - rdstls_required_role_is_server_
        - rdstls_set_state
        - transport_read_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/rdstls.c:1113,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:1085,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:1087,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:1089,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:1092,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/rdstls.c:1096,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:1099,19'
          Dst:             transport_read_pdu
        - Src:             'libfreerdp/core/rdstls.c:1104,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/rdstls.c:1107,25'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1108,7'
          Dst:             rdstls_is_version_supported_
        - Src:             'libfreerdp/core/rdstls.c:1112,25'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1116,9'
          Dst:             rdstls_process_authentication_request
        - Src:             'libfreerdp/core/rdstls.c:1120,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:1120,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:1125,7'
          Dst:             rdstls_set_state
        - Src:             'libfreerdp/core/rdstls.c:1127,2'
          Dst:             Stream_Free
    - functionName:    rdstls_send_capabilities
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1057
      functionLinenumberEnd: 1079
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          81
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_Free
        - Stream_New
        - rdstls_check_state_requirements_
        - rdstls_required_role_is_server_
        - rdstls_set_state
        - rdstls_write_capabilities
        - transport_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:1060,7'
          Dst:             rdstls_required_role_is_server_
        - Src:             'libfreerdp/core/rdstls.c:1063,7'
          Dst:             rdstls_check_state_requirements_
        - Src:             'libfreerdp/core/rdstls.c:1066,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/rdstls.c:1070,7'
          Dst:             rdstls_write_capabilities
        - Src:             'libfreerdp/core/rdstls.c:1072,6'
          Dst:             transport_write
        - Src:             'libfreerdp/core/rdstls.c:1075,7'
          Dst:             rdstls_set_state
        - Src:             'libfreerdp/core/rdstls.c:1077,2'
          Dst:             Stream_Free
    - functionName:    rdstls_parse_pdu_data_type
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1396
      functionLinenumberEnd: 1483
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         80
      ICount:          379
      EdgeCount:       101
      CyclomaticComplexity: 23
      functionsReached:
        - Stream_GetPosition
        - Stream_GetRemainingLength
        - Stream_Get_UINT16
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/rdstls.c:1399,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:1403,8'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdstls.c:1406,35'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1408,8'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdstls.c:1410,4'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/rdstls.c:1412,8'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdstls.c:1415,34'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1417,8'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdstls.c:1419,4'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/rdstls.c:1421,8'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdstls.c:1423,32'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1425,8'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdstls.c:1427,4'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/rdstls.c:1429,8'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdstls.c:1431,34'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1435,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:1435,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:1441,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:1441,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:1444,16'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/rdstls.c:1449,8'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdstls.c:1451,4'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/rdstls.c:1452,32'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1455,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:1455,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:1458,16'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/rdstls.c:1463,8'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdstls.c:1465,4'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/rdstls.c:1466,31'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1469,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:1469,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/rdstls.c:1472,16'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/rdstls.c:1476,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:1476,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:1325,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    rdstls_parse_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1486
      functionLinenumberEnd: 1525
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          132
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Buffer
        - Stream_GetRemainingLength
        - Stream_Get_UINT16
        - Stream_Length
        - Stream_StaticConstInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdstls_are_some_versions_supported_
        - rdstls_parse_pdu_data_type
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/rdstls.c:1502,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:1489,48'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/rdstls.c:1489,71'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/rdstls.c:1489,15'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/core/rdstls.c:1491,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdstls.c:1494,25'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1495,7'
          Dst:             rdstls_are_some_versions_supported_
        - Src:             'libfreerdp/core/rdstls.c:1498,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdstls.c:1501,25'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1509,8'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/rdstls.c:1512,28'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/rdstls.c:1513,16'
          Dst:             rdstls_parse_pdu_data_type
        - Src:             'libfreerdp/core/rdstls.c:1520,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/rdstls.c:1520,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdstls_client_authenticate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1360
      functionLinenumberEnd: 1375
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          63
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - rdstls_recv_authentication_response
        - rdstls_recv_capabilities
        - rdstls_send_authentication_request
        - rdstls_set_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:1361,7'
          Dst:             rdstls_set_state
        - Src:             'libfreerdp/core/rdstls.c:1364,7'
          Dst:             rdstls_recv_capabilities
        - Src:             'libfreerdp/core/rdstls.c:1368,7'
          Dst:             rdstls_send_authentication_request
        - Src:             'libfreerdp/core/rdstls.c:1371,7'
          Dst:             rdstls_recv_authentication_response
    - functionName:    rdstls_server_authenticate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1336
      functionLinenumberEnd: 1356
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          86
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - rdstls_recv_authentication_request
        - rdstls_send_authentication_response
        - rdstls_send_capabilities
        - rdstls_set_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:1337,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:1340,7'
          Dst:             rdstls_set_state
        - Src:             'libfreerdp/core/rdstls.c:1343,7'
          Dst:             rdstls_send_capabilities
        - Src:             'libfreerdp/core/rdstls.c:1346,7'
          Dst:             rdstls_recv_authentication_request
        - Src:             'libfreerdp/core/rdstls.c:1349,7'
          Dst:             rdstls_send_authentication_response
    - functionName:    rdstls_authenticate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1385
      functionLinenumberEnd: 1392
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          47
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - rdstls_client_authenticate
        - rdstls_server_authenticate
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:1386,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:1389,10'
          Dst:             rdstls_server_authenticate
        - Src:             'libfreerdp/core/rdstls.c:1391,10'
          Dst:             rdstls_client_authenticate
    - functionName:    rdstls_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rdstls_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/rdstls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          102
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Get
        - calloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/rdstls.c:141,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:142,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:145,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/rdstls.c:147,34'
          Dst:             calloc
        - Src:             'libfreerdp/core/rdstls.c:151,16'
          Dst:             WLog_Get
    - functionName:    freerdp_utils_aad_get_wellknown_custom_object
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/aad.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1001
      functionLinenumberEnd: 1009
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          65
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WINPR_JSON_GetObjectItemCaseSensitive
        - ensure_wellknown
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/aad.c:1002,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/aad.c:1003,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/aad.c:1005,7'
          Dst:             ensure_wellknown
        - Src:             'libfreerdp/core/aad.c:1008,9'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
    - functionName:    ensure_wellknown
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/aad.c'
      linkageType:     InternalLinkage
      functionLinenumber: 801
      functionLinenumberEnd: 802
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_utils_aad_get_wellknown_object
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/aad.c'
      linkageType:     InternalLinkage
      functionLinenumber: 995
      functionLinenumberEnd: 997
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_utils_aad_get_wellknown_custom_object
        - freerdp_utils_aad_wellknwon_value_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/aad.c:997,15'
          Dst:             freerdp_utils_aad_wellknwon_value_name
        - Src:             'libfreerdp/core/aad.c:996,9'
          Dst:             freerdp_utils_aad_get_wellknown_custom_object
    - functionName:    freerdp_utils_aad_wellknwon_value_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/aad.c'
      linkageType:     InternalLinkage
      functionLinenumber: 940
      functionLinenumberEnd: 992
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          132
      EdgeCount:       50
      CyclomaticComplexity: 26
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/aad.c:941,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    freerdp_utils_aad_get_wellknown_custom_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/aad.c'
      linkageType:     InternalLinkage
      functionLinenumber: 925
      functionLinenumberEnd: 937
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          77
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_GetStringValue
        - ensure_wellknown
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/aad.c:926,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/aad.c:927,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/aad.c:929,7'
          Dst:             ensure_wellknown
        - Src:             'libfreerdp/core/aad.c:932,20'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/core/aad.c:936,9'
          Dst:             WINPR_JSON_GetStringValue
    - functionName:    freerdp_utils_aad_get_wellknown_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/aad.c'
      linkageType:     InternalLinkage
      functionLinenumber: 919
      functionLinenumberEnd: 921
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_utils_aad_get_wellknown_custom_string
        - freerdp_utils_aad_wellknwon_value_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/aad.c:921,15'
          Dst:             freerdp_utils_aad_wellknwon_value_name
        - Src:             'libfreerdp/core/aad.c:920,9'
          Dst:             freerdp_utils_aad_get_wellknown_custom_string
    - functionName:    freerdp_utils_aad_get_wellknown
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/aad.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1014
      functionLinenumberEnd: 1051
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          178
      EdgeCount:       54
      CyclomaticComplexity: 9
      functionsReached:
        - WINPR_JSON_GetErrorPtr
        - WINPR_JSON_ParseWithLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_http_request
        - freerdp_http_status_string
        - winpr_asprintf
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/aad.c:1015,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/aad.c:1016,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/aad.c:1020,2'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/core/aad.c:1025,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/aad.c:1025,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/aad.c:1032,18'
          Dst:             freerdp_http_request
        - Src:             'libfreerdp/core/aad.c:1035,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/aad.c:1035,3'
          Dst:             freerdp_http_status_string
        - Src:             'libfreerdp/core/aad.c:1035,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/aad.c:1043,21'
          Dst:             WINPR_JSON_ParseWithLength
        - Src:             'libfreerdp/core/aad.c:1047,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/aad.c:1047,3'
          Dst:             WINPR_JSON_GetErrorPtr
        - Src:             'libfreerdp/core/aad.c:1047,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    aad_fetch_wellknown
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/aad.c'
      linkageType:     InternalLinkage
      functionLinenumber: 898
      functionLinenumberEnd: 916
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          101
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_settings_get_bool
        - freerdp_settings_get_string
        - freerdp_utils_aad_get_wellknown
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/aad.c:899,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/aad.c:902,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/aad.c:908,6'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/aad.c:910,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/aad.c:913,14'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/aad.c:914,19'
          Dst:             freerdp_utils_aad_get_wellknown
    - functionName:    freerdp_utils_aad_get_access_token
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/aad.c'
      linkageType:     InternalLinkage
      functionLinenumber: 862
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          124
      EdgeCount:       37
      CyclomaticComplexity: 8
      functionsReached:
        - WINPR_JSON_Delete
        - WINPR_JSON_GetErrorPtr
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_GetStringValue
        - WINPR_JSON_ParseWithLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - _strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/aad.c:867,21'
          Dst:             WINPR_JSON_ParseWithLength
        - Src:             'libfreerdp/core/aad.c:870,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/aad.c:870,3'
          Dst:             WINPR_JSON_GetErrorPtr
        - Src:             'libfreerdp/core/aad.c:870,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/aad.c:876,22'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/core/aad.c:879,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/aad.c:879,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/aad.c:883,21'
          Dst:             WINPR_JSON_GetStringValue
        - Src:             'libfreerdp/core/aad.c:886,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/aad.c:886,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/aad.c:890,10'
          Dst:             _strdup
        - Src:             'libfreerdp/core/aad.c:893,2'
          Dst:             WINPR_JSON_Delete
    - functionName:    aad_is_supported
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/aad.c'
      linkageType:     InternalLinkage
      functionLinenumber: 853
      functionLinenumberEnd: 857
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aad_get_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/aad.c'
      linkageType:     InternalLinkage
      functionLinenumber: 847
      functionLinenumberEnd: 849
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/aad.c:848,2'
          Dst:             winpr_int_assert
    - functionName:    aad_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/aad.c'
      linkageType:     InternalLinkage
      functionLinenumber: 832
      functionLinenumberEnd: 844
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_key_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/aad.c:841,2'
          Dst:             freerdp_key_free
    - functionName:    aad_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/aad.c'
      linkageType:     InternalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 829
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          69
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - aad_free
        - calloc
        - freerdp_key_new
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/aad.c:809,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/aad.c:811,25'
          Dst:             calloc
        - Src:             'libfreerdp/core/aad.c:816,13'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/aad.c:817,13'
          Dst:             freerdp_key_new
        - Src:             'libfreerdp/core/aad.c:826,2'
          Dst:             aad_free
    - functionName:    aad_recv
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/aad.c'
      linkageType:     InternalLinkage
      functionLinenumber: 794
      functionLinenumberEnd: 797
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          53
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/aad.c:795,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/aad.c:796,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/aad.c:796,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    aad_client_begin
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/aad.c'
      linkageType:     InternalLinkage
      functionLinenumber: 787
      functionLinenumberEnd: 790
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          51
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/aad.c:788,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/aad.c:789,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/aad.c:789,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    runTimerEvent
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetTickCount64NS
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timer.c:125,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:129,9'
          Dst:             winpr_GetTickCount64NS
    - 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:    runExpiredTimer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          170
      EdgeCount:       46
      CyclomaticComplexity: 7
      functionsReached:
        - runTimerEvent
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timer.c:138,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:139,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:146,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:149,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:157,3'
          Dst:             runTimerEvent
    - functionName:    expire_and_reschedule
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          142
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - ArrayList_Count
        - ArrayList_ForEach
        - ArrayList_GetItem
        - ArrayList_Lock
        - ArrayList_RemoveAt
        - ArrayList_Unlock
        - SetEvent
        - WLog_Print_dbg_tag
        - runExpiredTimer
        - winpr_GetTickCount64NS
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timer.c:165,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:169,17'
          Dst:             winpr_GetTickCount64NS
        - Src:             'libfreerdp/core/timer.c:171,2'
          Dst:             ArrayList_Lock
        - Src:             'libfreerdp/core/timer.c:172,7'
          Dst:             ArrayList_ForEach
        - Src:             'libfreerdp/core/timer.c:172,7'
          Dst:             runExpiredTimer
        - Src:             'libfreerdp/core/timer.c:173,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/timer.c:175,9'
          Dst:             SetEvent
        - Src:             'libfreerdp/core/timer.c:178,15'
          Dst:             ArrayList_Count
        - Src:             'libfreerdp/core/timer.c:180,26'
          Dst:             ArrayList_GetItem
        - Src:             'libfreerdp/core/timer.c:181,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:184,4'
          Dst:             ArrayList_RemoveAt
        - Src:             'libfreerdp/core/timer.c:191,2'
          Dst:             ArrayList_Unlock
    - functionName:    freerdp_timer_get_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 351
      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:             'libfreerdp/core/timer.c:350,2'
          Dst:             winpr_int_assert
    - functionName:    runExpiredTimerOnMainloop
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          129
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - runTimerEvent
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timer.c:311,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:312,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:323,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:328,2'
          Dst:             runTimerEvent
    - functionName:    freerdp_timer_poll
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - ArrayList_ForEach
        - ArrayList_Lock
        - ArrayList_Unlock
        - ResetEvent
        - SetEvent
        - WaitForSingleObject
        - runExpiredTimerOnMainloop
        - winpr_GetTickCount64NS
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timer.c:334,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:336,6'
          Dst:             WaitForSingleObject
        - Src:             'libfreerdp/core/timer.c:339,2'
          Dst:             ArrayList_Lock
        - Src:             'libfreerdp/core/timer.c:340,8'
          Dst:             ResetEvent
        - Src:             'libfreerdp/core/timer.c:341,17'
          Dst:             winpr_GetTickCount64NS
        - Src:             'libfreerdp/core/timer.c:342,12'
          Dst:             ArrayList_ForEach
        - Src:             'libfreerdp/core/timer.c:342,12'
          Dst:             runExpiredTimerOnMainloop
        - Src:             'libfreerdp/core/timer.c:343,8'
          Dst:             SetEvent
        - Src:             'libfreerdp/core/timer.c:344,2'
          Dst:             ArrayList_Unlock
    - functionName:    timer_thread
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          120
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ResetEvent
        - WaitForMultipleObjects
        - expire_and_reschedule
        - utils_get_abort_event
        - winpr_GetTickCount64NS
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timer.c:199,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:203,24'
          Dst:             utils_get_abort_event
        - Src:             'libfreerdp/core/timer.c:206,10'
          Dst:             WaitForMultipleObjects
        - Src:             'libfreerdp/core/timer.c:208,9'
          Dst:             ResetEvent
        - Src:             'libfreerdp/core/timer.c:209,25'
          Dst:             expire_and_reschedule
        - Src:             'libfreerdp/core/timer.c:210,24'
          Dst:             winpr_GetTickCount64NS
    - functionName:    entry_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timer.c:260,24'
          Dst:             calloc
    - functionName:    freerdp_timer_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          132
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - ArrayList_New
        - ArrayList_Object
        - CreateEventA
        - CreateThread
        - calloc
        - freerdp_timer_free
        - timer_thread
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timer.c:269,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:270,24'
          Dst:             calloc
        - Src:             'libfreerdp/core/timer.c:275,19'
          Dst:             ArrayList_New
        - Src:             'libfreerdp/core/timer.c:280,18'
          Dst:             ArrayList_Object
        - Src:             'libfreerdp/core/timer.c:281,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:286,17'
          Dst:             CreateEventA
        - Src:             'libfreerdp/core/timer.c:290,21'
          Dst:             CreateEventA
        - Src:             'libfreerdp/core/timer.c:296,18'
          Dst:             CreateThread
        - Src:             'libfreerdp/core/timer.c:296,18'
          Dst:             timer_thread
        - Src:             'libfreerdp/core/timer.c:303,2'
          Dst:             freerdp_timer_free
    - functionName:    freerdp_timer_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          102
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - ArrayList_Free
        - CloseHandle
        - SetEvent
        - WaitForSingleObject
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timer.c:239,9'
          Dst:             SetEvent
        - Src:             'libfreerdp/core/timer.c:243,9'
          Dst:             WaitForSingleObject
        - Src:             'libfreerdp/core/timer.c:244,3'
          Dst:             CloseHandle
        - Src:             'libfreerdp/core/timer.c:247,3'
          Dst:             CloseHandle
        - Src:             'libfreerdp/core/timer.c:249,3'
          Dst:             CloseHandle
        - Src:             'libfreerdp/core/timer.c:250,2'
          Dst:             ArrayList_Free
    - functionName:    foreach_entry
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          81
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timer.c:97,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_timer_remove
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          71
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - ArrayList_ForEach
        - foreach_entry
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timer.c:114,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:115,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:118,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:120,10'
          Dst:             ArrayList_ForEach
        - Src:             'libfreerdp/core/timer.c:120,10'
          Dst:             foreach_entry
    - functionName:    freerdp_timer_add
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          144
      EdgeCount:       32
      CyclomaticComplexity: 5
      functionsReached:
        - ArrayList_Append
        - SetEvent
        - winpr_GetTickCount64NS
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timer.c:60,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:61,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:73,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timer.c:78,23'
          Dst:             winpr_GetTickCount64NS
        - Src:             'libfreerdp/core/timer.c:87,7'
          Dst:             ArrayList_Append
        - Src:             'libfreerdp/core/timer.c:89,8'
          Dst:             SetEvent
    - functionName:    BIO_wait_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:103,9'
          Dst:             BIO_ctrl
    - functionName:    BIO_wait_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:97,9'
          Dst:             BIO_ctrl
    - functionName:    BIO_write_blocked
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:92,9'
          Dst:             BIO_ctrl
    - functionName:    BIO_read_blocked
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:86,9'
          Dst:             BIO_ctrl
    - functionName:    tsg_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3032
      functionLinenumberEnd: 3079
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          225
      EdgeCount:       63
      CyclomaticComplexity: 16
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WaitForSingleObject
        - rpc_client_receive_pipe_read
        - transport_get_blocking
        - transport_get_layer
        - tsg_check_event_handles
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:3041,6'
          Dst:             transport_get_layer
        - Src:             'libfreerdp/core/gateway/tsg.c:3043,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:3043,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:3049,12'
          Dst:             rpc_client_receive_pipe_read
        - Src:             'libfreerdp/core/gateway/tsg.c:3054,19'
          Dst:             transport_get_blocking
        - Src:             'libfreerdp/core/gateway/tsg.c:3057,7'
          Dst:             transport_get_layer
        - Src:             'libfreerdp/core/gateway/tsg.c:3059,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:3059,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:3066,7'
          Dst:             transport_get_blocking
        - Src:             'libfreerdp/core/gateway/tsg.c:3068,11'
          Dst:             WaitForSingleObject
        - Src:             'libfreerdp/core/gateway/tsg.c:3070,10'
          Dst:             tsg_check_event_handles
        - Src:             'libfreerdp/core/gateway/tsg.c:3073,11'
          Dst:             WaitForSingleObject
        - Src:             'libfreerdp/core/gateway/tsg.c:3076,11'
          Dst:             transport_get_blocking
    - functionName:    tsg_check_event_handles
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2806
      functionLinenumberEnd: 2815
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          56
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - rpc_client_in_channel_recv
        - rpc_client_out_channel_recv
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2807,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2808,6'
          Dst:             rpc_client_in_channel_recv
        - Src:             'libfreerdp/core/gateway/tsg.c:2811,6'
          Dst:             rpc_client_out_channel_recv
    - 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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:244,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:    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:    5
      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:    TsProxySendToServer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1313
      functionLinenumberEnd: 1394
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         117
      ICount:          462
      EdgeCount:       131
      CyclomaticComplexity: 16
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_Write
        - Stream_Write_UINT32_BE_unchecked
        - TsProxyWriteTunnelContext
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rpc_client_write_call
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1355,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/tsg.c:1359,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1359,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1364,7'
          Dst:             TsProxyWriteTunnelContext
        - Src:             'libfreerdp/core/gateway/tsg.c:1366,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1366,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1366,2'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1367,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1367,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1367,2'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1370,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1370,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1370,3'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1373,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1373,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1373,3'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1376,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1376,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1376,3'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1379,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/tsg.c:1382,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/tsg.c:1385,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/tsg.c:1387,7'
          Dst:             rpc_client_write_call
        - Src:             'libfreerdp/core/gateway/tsg.c:1392,2'
          Dst:             Stream_Free
    - functionName:    TsProxyWriteTunnelContext
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          75
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:363,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/tsg.c:366,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:366,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:366,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:367,2'
          Dst:             Stream_Write
    - 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:    8
      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_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:    13
      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_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:    33
      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_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:    3
      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:    tsg_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3082
      functionLinenumberEnd: 3100
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          113
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - TsProxySendToServer
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - transport_get_layer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:3088,6'
          Dst:             transport_get_layer
        - Src:             'libfreerdp/core/gateway/tsg.c:3090,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:3090,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:3094,11'
          Dst:             TsProxySendToServer
    - functionName:    transport_bio_tsg_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3303
      functionLinenumberEnd: 3306
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          29
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:3304,2'
          Dst:             winpr_int_assert
    - functionName:    transport_bio_tsg_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3295
      functionLinenumberEnd: 3299
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_set_flags
        - BIO_set_init
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:3296,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:3297,2'
          Dst:             BIO_set_init
        - Src:             'libfreerdp/core/gateway/tsg.c:3298,2'
          Dst:             BIO_set_flags
    - functionName:    transport_bio_tsg_ctrl
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3210
      functionLinenumberEnd: 3292
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          219
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - BIO_ctrl
        - BIO_get_data
        - BIO_read_blocked
        - BIO_wait_read
        - BIO_wait_write
        - BIO_write_blocked
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/tsg.c:3217,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:3212,25'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/gateway/tsg.c:3220,10'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/core/gateway/tsg.c:3221,10'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/core/gateway/tsg.c:3241,13'
          Dst:             BIO_read_blocked
        - Src:             'libfreerdp/core/gateway/tsg.c:3248,13'
          Dst:             BIO_write_blocked
        - Src:             'libfreerdp/core/gateway/tsg.c:3257,8'
          Dst:             BIO_read_blocked
        - Src:             'libfreerdp/core/gateway/tsg.c:3258,12'
          Dst:             BIO_wait_read
        - Src:             'libfreerdp/core/gateway/tsg.c:3259,13'
          Dst:             BIO_write_blocked
        - Src:             'libfreerdp/core/gateway/tsg.c:3260,12'
          Dst:             BIO_wait_write
        - Src:             'libfreerdp/core/gateway/tsg.c:3271,8'
          Dst:             BIO_write_blocked
        - Src:             'libfreerdp/core/gateway/tsg.c:3272,14'
          Dst:             BIO_wait_write
        - Src:             'libfreerdp/core/gateway/tsg.c:3273,13'
          Dst:             BIO_read_blocked
        - Src:             'libfreerdp/core/gateway/tsg.c:3274,14'
          Dst:             BIO_wait_read
    - functionName:    transport_bio_tsg_gets
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3202
      functionLinenumberEnd: 3206
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_bio_tsg_puts
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3194
      functionLinenumberEnd: 3197
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    transport_bio_tsg_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3162
      functionLinenumberEnd: 3191
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          97
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - BIO_set_flags
        - WSASetLastError
        - tsg_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:3164,25'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/gateway/tsg.c:3168,3'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/gateway/tsg.c:3172,2'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/gateway/tsg.c:3173,11'
          Dst:             tsg_read
        - Src:             'libfreerdp/core/gateway/tsg.c:3177,3'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/gateway/tsg.c:3182,3'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/gateway/tsg.c:3183,3'
          Dst:             WSASetLastError
        - Src:             'libfreerdp/core/gateway/tsg.c:3187,3'
          Dst:             BIO_set_flags
    - functionName:    transport_bio_tsg_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3134
      functionLinenumberEnd: 3159
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - BIO_set_flags
        - WSASetLastError
        - tsg_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:3136,25'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/gateway/tsg.c:3137,2'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/gateway/tsg.c:3141,11'
          Dst:             tsg_write
        - Src:             'libfreerdp/core/gateway/tsg.c:3145,3'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/gateway/tsg.c:3150,3'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/gateway/tsg.c:3151,3'
          Dst:             WSASetLastError
        - Src:             'libfreerdp/core/gateway/tsg.c:3155,3'
          Dst:             BIO_set_flags
    - functionName:    Stream_Seek_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1207
      functionLinenumberEnd: 1209
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1208,3'
          Dst:             Stream_Seek
    - functionName:    tsg_redir_to_flags
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1798
      functionLinenumberEnd: 1815
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          128
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tsg_ndr_read_sohr
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1850
      functionLinenumberEnd: 1875
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          148
      EdgeCount:       45
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT32
        - Stream_Pointer
        - Stream_SafeSeekEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_HexLogDump
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1851,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:1854,21'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gateway/tsg.c:1859,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1859,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1866,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1866,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1869,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1869,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1870,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/gateway/tsg.c:1873,36'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gateway/tsg.c:1873,2'
          Dst:             winpr_HexLogDump
    - functionName:    Stream_Get_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u32_le
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:413,10'
          Dst:             stream_read_u32_le
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,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:    22
      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:    tsg_ndr_read_timeout
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1832
      functionLinenumberEnd: 1847
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          88
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT32
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1833,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:1838,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1838,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1843,29'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gateway/tsg.c:1844,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1844,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    Stream_Get_INT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 424
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_i32_le
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:424,10'
          Dst:             stream_read_i32_le
    - 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:    5
      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:    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:    tsg_redirect_apply
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1819
      functionLinenumberEnd: 1828
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          73
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - transport_get_context
        - tsg_redir_to_flags
        - utils_apply_gateway_policy
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1820,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1821,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1824,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1826,24'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/gateway/tsg.c:1827,22'
          Dst:             tsg_redir_to_flags
        - Src:             'libfreerdp/core/gateway/tsg.c:1828,9'
          Dst:             utils_apply_gateway_policy
    - functionName:    tsg_ndr_read_packet_response_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1879
      functionLinenumberEnd: 1964
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         90
      ICount:          431
      EdgeCount:       113
      CyclomaticComplexity: 25
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogEx
        - Stream_GetRemainingLength
        - Stream_Get_UINT32
        - Stream_SafeSeekEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - tsg_caps_to_string
        - tsg_ndr_read_sohr
        - tsg_ndr_read_timeout
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1880,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1882,7'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:1885,31'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gateway/tsg.c:1886,21'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gateway/tsg.c:1889,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1889,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1896,8'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:1901,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1901,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1913,9'
          Dst:             tsg_ndr_read_timeout
        - Src:             'libfreerdp/core/gateway/tsg.c:1915,9'
          Dst:             tsg_ndr_read_sohr
        - Src:             'libfreerdp/core/gateway/tsg.c:1920,9'
          Dst:             tsg_ndr_read_sohr
        - Src:             'libfreerdp/core/gateway/tsg.c:1925,9'
          Dst:             tsg_ndr_read_timeout
        - Src:             'libfreerdp/core/gateway/tsg.c:1927,9'
          Dst:             tsg_ndr_read_sohr
        - Src:             'libfreerdp/core/gateway/tsg.c:1932,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1932,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1944,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1944,3'
          Dst:             tsg_caps_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1944,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1951,8'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/gateway/tsg.c:1956,23'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gateway/tsg.c:1959,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1959,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    tsg_caps_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          125
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - snprintf
        - winpr_str_append
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:249,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gateway/tsg.c:251,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gateway/tsg.c:253,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gateway/tsg.c:255,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gateway/tsg.c:257,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gateway/tsg.c:262,9'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gateway/tsg.c:263,9'
          Dst:             winpr_str_append
    - functionName:    tsg_ndr_read_packet_redirection_flags
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 775
      functionLinenumberEnd: 797
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          87
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_INT32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:776,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:778,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:782,6'
          Dst:             Stream_Get_INT32
        - Src:             'libfreerdp/core/gateway/tsg.c:784,6'
          Dst:             Stream_Get_INT32
        - Src:             'libfreerdp/core/gateway/tsg.c:786,6'
          Dst:             Stream_Get_INT32
        - Src:             'libfreerdp/core/gateway/tsg.c:788,6'
          Dst:             Stream_Get_INT32
        - Src:             'libfreerdp/core/gateway/tsg.c:790,6'
          Dst:             Stream_Get_INT32
        - Src:             'libfreerdp/core/gateway/tsg.c:791,31'
          Dst:             Stream_Get_INT32
        - Src:             'libfreerdp/core/gateway/tsg.c:793,6'
          Dst:             Stream_Get_INT32
        - Src:             'libfreerdp/core/gateway/tsg.c:795,6'
          Dst:             Stream_Get_INT32
    - 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_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:    tsg_ndr_write_conformant_array
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         89
      ICount:          312
      EdgeCount:       101
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - Stream_Zero
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:432,32'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/tsg.c:435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:435,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:436,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/tsg.c:438,3'
          Dst:             Stream_Zero
    - functionName:    tsg_ndr_write_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          150
      EdgeCount:       52
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UTF16_String
        - Stream_Zero
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:448,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/tsg.c:451,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:451,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:451,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:452,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:453,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:453,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:453,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:454,7'
          Dst:             Stream_Write_UTF16_String
        - Src:             'libfreerdp/core/gateway/tsg.c:456,2'
          Dst:             Stream_Zero
    - functionName:    TsProxyReadTunnelContext
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          58
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Read
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:350,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:353,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:354,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:355,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:    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:    tsg_ndr_read_nap
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 550
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          80
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u32_le
        - tsg_caps_to_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:539,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:541,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:543,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:546,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:546,3'
          Dst:             tsg_caps_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:546,3'
          Dst:             WLog_PrintTextMessage
    - 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:    tsg_component_id_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 7
      functionsReached:
        - snprintf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/tsg.c:310,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:319,8'
          Dst:             snprintf
    - functionName:    tsg_ndr_read_tsg_caps
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 569
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          173
      EdgeCount:       50
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u32_le
        - tsg_ndr_read_nap
        - tsg_packet_id_to_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/tsg.c:586,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:572,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:574,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:576,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:577,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:578,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:581,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:581,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:591,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:591,5'
          Dst:             tsg_packet_id_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:591,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:595,11'
          Dst:             tsg_ndr_read_nap
        - Src:             'libfreerdp/core/gateway/tsg.c:597,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:597,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    tsg_packet_id_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          77
      EdgeCount:       28
      CyclomaticComplexity: 15
      functionsReached: []
      functionUses:    12
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/tsg.c:271,2'
          Branch Sides:    []
      Callsites:       []
    - 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:    5
      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:    tsg_ndr_read_packet_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 504
      functionLinenumberEnd: 524
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          105
      EdgeCount:       28
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
        - tsg_component_id_to_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:507,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:508,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:510,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/tsg.c:511,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/tsg.c:517,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:517,3'
          Dst:             tsg_component_id_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:517,3'
          Dst:             tsg_component_id_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:517,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    tsg_ndr_read_version_caps
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 628
      functionLinenumberEnd: 655
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          135
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - stream_read_u32_le
        - tsg_ndr_pointer_read
        - tsg_ndr_read_packet_header
        - tsg_ndr_read_tsg_caps
        - tsg_stream_align
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:629,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:630,7'
          Dst:             tsg_ndr_read_packet_header
        - Src:             'libfreerdp/core/gateway/tsg.c:634,7'
          Dst:             tsg_ndr_pointer_read
        - Src:             'libfreerdp/core/gateway/tsg.c:637,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:639,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:640,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/tsg.c:641,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/tsg.c:642,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/tsg.c:644,7'
          Dst:             tsg_stream_align
        - Src:             'libfreerdp/core/gateway/tsg.c:649,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/tsg.c:654,9'
          Dst:             tsg_ndr_read_tsg_caps
    - functionName:    tsg_ndr_pointer_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          167
      EdgeCount:       50
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT32
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:396,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:401,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:404,20'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gateway/tsg.c:412,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:412,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:421,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:421,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    tsg_stream_align
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1256
      functionLinenumberEnd: 1272
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          74
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetPosition
        - Stream_Seek
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1263,8'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/tsg.c:1268,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:1270,2'
          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:    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_Data_Get_UINT64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      size_t
      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:168,3'
          Dst:             winpr_int_assert
    - functionName:    stream_read_u64_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          64
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT64
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:294,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:295,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:295,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:297,20'
          Dst:             winpr_Data_Get_UINT64
        - Src:             'winpr/include/winpr/stream.h:299,4'
          Dst:             Stream_Seek
    - functionName:    tsg_ndr_read_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 501
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          195
      EdgeCount:       53
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Pointer
        - Stream_SafeSeekEx
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u32_le
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:466,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:469,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:470,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:471,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:474,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:474,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:481,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:481,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:486,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:486,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:493,10'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gateway/tsg.c:495,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:497,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/gateway/tsg.c:500,9'
          Dst:             Stream_SafeSeekEx
    - functionName:    TsProxyReadPacketSTringMessage
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2107
      functionLinenumberEnd: 2138
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          165
      EdgeCount:       44
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_i32_le
        - stream_read_u32_le
        - tsg_ndr_pointer_read
        - tsg_ndr_read_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2110,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2115,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:2118,2'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:2119,2'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:2120,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:2122,7'
          Dst:             tsg_ndr_pointer_read
        - Src:             'libfreerdp/core/gateway/tsg.c:2127,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2127,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2133,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2133,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2137,9'
          Dst:             tsg_ndr_read_string
    - functionName:    Stream_Get_UINT64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u64_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:457,10'
          Dst:             stream_read_u64_le
    - functionName:    tsg_ndr_read_consent_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1504
      functionLinenumberEnd: 1524
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          143
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - TsProxyReadPacketSTringMessage
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1507,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1508,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1510,7'
          Dst:             TsProxyReadPacketSTringMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1515,10'
          Dst:             WLog_Print_dbg_tag
    - functionName:    tsg_ndr_read_TSG_PACKET_MSG_RESPONSE
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1577
      functionLinenumberEnd: 1610
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          175
      EdgeCount:       46
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT64
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - tsg_ndr_read_consent_message
        - tsg_packet_id_to_string
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/tsg.c:1588,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1578,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1582,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1582,3'
          Dst:             tsg_packet_id_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1582,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1592,11'
          Dst:             tsg_ndr_read_consent_message
        - Src:             'libfreerdp/core/gateway/tsg.c:1596,9'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:1599,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1600,25'
          Dst:             Stream_Get_UINT64
        - Src:             'libfreerdp/core/gateway/tsg.c:1607,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1607,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    tsg_ndr_read_TSG_PACKET_MSG_RESPONSE_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1551
      functionLinenumberEnd: 1571
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          77
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT32
        - WLog_Print_dbg_tag
        - stream_read_i32_le
        - stream_read_u32_le
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1553,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:1556,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:1557,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:1558,2'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:1559,31'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gateway/tsg.c:1563,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    tsg_ndr_read_tunnel_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1528
      functionLinenumberEnd: 1547
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          97
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - NtStatus2Tag
        - Stream_CheckAndLogRequiredLengthWLogEx
        - TsProxyReadTunnelContext
        - WLog_Print_dbg_tag
        - stream_read_i32_le
        - stream_read_u32_le
        - tsg_stream_align
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1529,7'
          Dst:             tsg_stream_align
        - Src:             'libfreerdp/core/gateway/tsg.c:1533,7'
          Dst:             TsProxyReadTunnelContext
        - Src:             'libfreerdp/core/gateway/tsg.c:1536,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:1539,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1540,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:1543,2'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:1545,3'
          Dst:             NtStatus2Tag
        - Src:             'libfreerdp/core/gateway/tsg.c:1545,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    tsg_ndr_read_quarenc_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          85
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - tsg_ndr_read_string
        - tsg_ndr_read_version_caps
        - tsg_stream_align
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:712,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:717,8'
          Dst:             tsg_ndr_read_string
        - Src:             'libfreerdp/core/gateway/tsg.c:721,8'
          Dst:             tsg_stream_align
        - Src:             'libfreerdp/core/gateway/tsg.c:725,9'
          Dst:             tsg_ndr_read_version_caps
    - functionName:    tsg_ndr_read_quarenc_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 689
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          104
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Read
        - stream_read_u32_le
        - tsg_ndr_pointer_read
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:690,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:694,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:696,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:697,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:699,7'
          Dst:             tsg_ndr_pointer_read
        - Src:             'libfreerdp/core/gateway/tsg.c:702,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:704,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/gateway/tsg.c:706,10'
          Dst:             tsg_ndr_pointer_read
    - functionName:    tsg_ndr_read_caps_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1616
      functionLinenumberEnd: 1652
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          179
      EdgeCount:       51
      CyclomaticComplexity: 9
      functionsReached:
        - tsg_ndr_pointer_read
        - tsg_ndr_read_TSG_PACKET_MSG_RESPONSE
        - tsg_ndr_read_TSG_PACKET_MSG_RESPONSE_header
        - tsg_ndr_read_quarenc_data
        - tsg_ndr_read_quarenc_response
        - tsg_ndr_read_tunnel_context
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1619,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1620,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1621,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1622,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1624,7'
          Dst:             tsg_ndr_pointer_read
        - Src:             'libfreerdp/core/gateway/tsg.c:1627,7'
          Dst:             tsg_ndr_read_quarenc_response
        - Src:             'libfreerdp/core/gateway/tsg.c:1635,8'
          Dst:             tsg_ndr_read_TSG_PACKET_MSG_RESPONSE_header
        - Src:             'libfreerdp/core/gateway/tsg.c:1638,8'
          Dst:             tsg_ndr_pointer_read
        - Src:             'libfreerdp/core/gateway/tsg.c:1641,8'
          Dst:             tsg_ndr_read_quarenc_data
        - Src:             'libfreerdp/core/gateway/tsg.c:1644,8'
          Dst:             tsg_ndr_read_TSG_PACKET_MSG_RESPONSE
        - Src:             'libfreerdp/core/gateway/tsg.c:1649,9'
          Dst:             tsg_ndr_read_tunnel_context
    - functionName:    winpr_Data_Write_UINT64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 286
      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
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:282,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/endian.h:284,3'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/include/winpr/endian.h:285,3'
          Dst:             winpr_Data_Write_UINT32
    - functionName:    tsg_ndr_write_auth
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 729
      functionLinenumberEnd: 746
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          137
      EdgeCount:       36
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - tsg_ndr_pointer_write
        - tsg_ndr_write_version_caps
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:730,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:732,7'
          Dst:             tsg_ndr_write_version_caps
        - Src:             'libfreerdp/core/gateway/tsg.c:735,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/tsg.c:738,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:738,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:738,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:739,7'
          Dst:             tsg_ndr_pointer_write
        - Src:             'libfreerdp/core/gateway/tsg.c:742,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/tsg.c:744,2'
          Dst:             Stream_Write
    - functionName:    tsg_ndr_write_version_caps
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 685
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         98
      ICount:          296
      EdgeCount:       102
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - WLog_Print_dbg_tag
        - tsg_ndr_pointer_write
        - tsg_ndr_write_packet_header
        - tsg_ndr_write_tsg_caps
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:660,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:661,7'
          Dst:             tsg_ndr_write_packet_header
        - Src:             'libfreerdp/core/gateway/tsg.c:664,7'
          Dst:             tsg_ndr_pointer_write
        - Src:             'libfreerdp/core/gateway/tsg.c:667,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/tsg.c:672,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/tsg.c:676,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:676,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:676,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:677,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:677,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:677,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:678,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:678,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:678,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:679,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:679,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:679,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:682,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:683,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:683,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:683,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:684,9'
          Dst:             tsg_ndr_write_tsg_caps
    - functionName:    tsg_ndr_pointer_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          119
      EdgeCount:       44
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:375,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:380,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/tsg.c:385,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:385,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:385,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:389,3'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    tsg_ndr_write_packet_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          124
      EdgeCount:       41
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:529,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:530,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/tsg.c:532,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:532,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:532,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:533,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:533,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:533,2'
          Dst:             Stream_Write_UINT16_unchecked
    - 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:    11
      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:    tsg_ndr_write_tsg_caps
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 624
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          158
      EdgeCount:       50
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - tsg_ndr_write_nap
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/tsg.c:614,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:607,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:609,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/tsg.c:611,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:611,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:611,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:612,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:612,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:612,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:617,11'
          Dst:             tsg_ndr_write_nap
        - Src:             'libfreerdp/core/gateway/tsg.c:619,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:619,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    tsg_ndr_write_nap
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          109
      EdgeCount:       35
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - tsg_caps_to_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:554,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:556,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/tsg.c:561,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:561,3'
          Dst:             tsg_caps_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:561,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:564,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:564,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:564,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    Stream_Write_UINT64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1127
      functionLinenumberEnd: 1134
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT64
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1128,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1129,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1130,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1130,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1132,3'
          Dst:             winpr_Data_Write_UINT64
    - 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:    tsg_bool_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 961
      functionLinenumberEnd: 965
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tsg_redirection_flags_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 969
      functionLinenumberEnd: 985
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          92
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - snprintf
        - tsg_bool_to_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:970,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:971,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:978,6'
          Dst:             tsg_bool_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:979,6'
          Dst:             tsg_bool_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:980,6'
          Dst:             tsg_bool_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:981,6'
          Dst:             tsg_bool_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:982,6'
          Dst:             tsg_bool_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:982,58'
          Dst:             tsg_bool_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:983,6'
          Dst:             tsg_bool_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:984,6'
          Dst:             tsg_bool_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:973,8'
          Dst:             snprintf
    - functionName:    tsg_type_capability_nap_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 830
      functionLinenumberEnd: 836
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          63
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - tsg_packet_id_to_string
        - tsg_print
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:831,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:832,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:833,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:836,19'
          Dst:             tsg_packet_id_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:835,9'
          Dst:             tsg_print
    - functionName:    tsg_print
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 801
      functionLinenumberEnd: 814
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          96
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - vsnprintf
      functionUses:    43
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:807,7'
          Dst:             vsnprintf
    - functionName:    tsg_packet_capabilities_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 841
      functionLinenumberEnd: 865
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          136
      EdgeCount:       38
      CyclomaticComplexity: 5
      functionsReached:
        - tsg_print
        - tsg_type_capability_nap_to_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/tsg.c:852,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:842,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:843,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:844,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:846,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:855,10'
          Dst:             tsg_type_capability_nap_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:859,10'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:864,9'
          Dst:             tsg_print
    - functionName:    tsg_packet_reauth_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1145
      functionLinenumberEnd: 1177
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          147
      EdgeCount:       34
      CyclomaticComplexity: 4
      functionsReached:
        - tsg_packet_auth_to_string
        - tsg_packet_id_to_string
        - tsg_packet_versioncaps_to_string
        - tsg_print
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/tsg.c:1158,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1147,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1148,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1149,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1151,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1155,38'
          Dst:             tsg_packet_id_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1154,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1161,9'
          Dst:             tsg_packet_versioncaps_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1165,9'
          Dst:             tsg_packet_auth_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1169,19'
          Dst:             tsg_packet_id_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1168,9'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1176,9'
          Dst:             tsg_print
    - functionName:    tsg_packet_versioncaps_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 869
      functionLinenumberEnd: 900
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          155
      EdgeCount:       40
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - tsg_packet_capabilities_to_string
        - tsg_packet_header_to_string
        - tsg_print
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:870,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:871,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:872,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:874,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:876,7'
          Dst:             tsg_packet_header_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:879,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:884,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/tsg.c:889,7'
          Dst:             tsg_packet_capabilities_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:892,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:899,9'
          Dst:             tsg_print
    - functionName:    tsg_packet_auth_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1120
      functionLinenumberEnd: 1141
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          141
      EdgeCount:       39
      CyclomaticComplexity: 7
      functionsReached:
        - tsg_packet_versioncaps_to_string
        - tsg_print
        - winpr_BinToHexString
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1123,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1124,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1125,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1127,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1130,7'
          Dst:             tsg_packet_versioncaps_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1133,12'
          Dst:             winpr_BinToHexString
        - Src:             'libfreerdp/core/gateway/tsg.c:1135,8'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1140,9'
          Dst:             tsg_print
    - functionName:    tsg_packet_header_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 818
      functionLinenumberEnd: 825
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          67
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - tsg_print
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:819,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:820,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:821,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:823,9'
          Dst:             tsg_print
    - functionName:    tsg_packet_message_response_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1068
      functionLinenumberEnd: 1082
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          94
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - tsg_print
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1069,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1070,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1071,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1073,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1076,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1081,9'
          Dst:             tsg_print
    - functionName:    tsg_packet_message_request_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1105
      functionLinenumberEnd: 1117
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          88
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - tsg_print
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1106,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1107,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1108,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1110,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1113,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1116,9'
          Dst:             tsg_print
    - functionName:    tsg_packet_caps_response_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1086
      functionLinenumberEnd: 1101
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          100
      EdgeCount:       31
      CyclomaticComplexity: 5
      functionsReached:
        - tsg_packet_message_response_to_string
        - tsg_packet_quarenc_response_to_string
        - tsg_print
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1087,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1088,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1089,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1091,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1094,7'
          Dst:             tsg_packet_quarenc_response_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1097,7'
          Dst:             tsg_packet_message_response_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1100,9'
          Dst:             tsg_print
    - functionName:    tsg_packet_quarenc_response_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1022
      functionLinenumberEnd: 1064
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          192
      EdgeCount:       50
      CyclomaticComplexity: 10
      functionsReached:
        - ConvertWCharNToUtf8Alloc
        - guid2str
        - tsg_packet_versioncaps_to_string
        - tsg_print
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1029,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1030,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1031,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1033,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1036,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1040,2'
          Dst:             guid2str
        - Src:             'libfreerdp/core/gateway/tsg.c:1046,13'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'libfreerdp/core/gateway/tsg.c:1051,2'
          Dst:             tsg_packet_versioncaps_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1054,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1063,9'
          Dst:             tsg_print
    - functionName:    tsg_packet_response_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 990
      functionLinenumberEnd: 1018
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          151
      EdgeCount:       39
      CyclomaticComplexity: 7
      functionsReached:
        - tsg_print
        - tsg_redirection_flags_to_string
        - winpr_BinToHexString
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:995,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:996,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:997,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:999,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1002,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1005,12'
          Dst:             winpr_BinToHexString
        - Src:             'libfreerdp/core/gateway/tsg.c:1012,7'
          Dst:             tsg_redirection_flags_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1007,8'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1017,9'
          Dst:             tsg_print
    - functionName:    tsg_packet_quarrequest_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 923
      functionLinenumberEnd: 958
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          192
      EdgeCount:       49
      CyclomaticComplexity: 10
      functionsReached:
        - ConvertWCharNToUtf8Alloc
        - tsg_print
        - winpr_BinToHexString
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:928,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:929,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:930,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:932,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:935,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:942,10'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'libfreerdp/core/gateway/tsg.c:947,12'
          Dst:             winpr_BinToHexString
        - Src:             'libfreerdp/core/gateway/tsg.c:949,8'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:957,9'
          Dst:             tsg_print
    - functionName:    tsg_packet_quarconfigrequest_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 904
      functionLinenumberEnd: 919
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          99
      EdgeCount:       31
      CyclomaticComplexity: 5
      functionsReached:
        - tsg_print
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:905,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:906,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:907,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:909,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:912,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:915,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:918,9'
          Dst:             tsg_print
    - functionName:    tsg_ndr_write_reauth
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 750
      functionLinenumberEnd: 771
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          141
      EdgeCount:       37
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT64
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - tsg_ndr_write_auth
        - tsg_ndr_write_version_caps
        - tsg_packet_id_to_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/tsg.c:759,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:751,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:753,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/tsg.c:756,2'
          Dst:             Stream_Write_UINT64
        - Src:             'libfreerdp/core/gateway/tsg.c:757,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:757,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:757,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:762,11'
          Dst:             tsg_ndr_write_version_caps
        - Src:             'libfreerdp/core/gateway/tsg.c:765,11'
          Dst:             tsg_ndr_write_auth
        - Src:             'libfreerdp/core/gateway/tsg.c:767,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:767,4'
          Dst:             tsg_packet_id_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:767,4'
          Dst:             WLog_PrintTextMessage
    - 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:    10
      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:    tsg_packet_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1180
      functionLinenumberEnd: 1252
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         45
      ICount:          216
      EdgeCount:       58
      CyclomaticComplexity: 15
      functionsReached:
        - tsg_packet_auth_to_string
        - tsg_packet_caps_response_to_string
        - tsg_packet_header_to_string
        - tsg_packet_id_to_string
        - tsg_packet_message_request_to_string
        - tsg_packet_message_response_to_string
        - tsg_packet_quarconfigrequest_to_string
        - tsg_packet_quarenc_response_to_string
        - tsg_packet_quarrequest_to_string
        - tsg_packet_reauth_to_string
        - tsg_packet_response_to_string
        - tsg_packet_versioncaps_to_string
        - tsg_print
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/tsg.c:1189,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1186,17'
          Dst:             tsg_packet_id_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1185,7'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1192,9'
          Dst:             tsg_packet_header_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1196,9'
          Dst:             tsg_packet_versioncaps_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1201,9'
          Dst:             tsg_packet_quarconfigrequest_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1206,9'
          Dst:             tsg_packet_quarrequest_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1211,9'
          Dst:             tsg_packet_response_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1215,9'
          Dst:             tsg_packet_quarenc_response_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1220,9'
          Dst:             tsg_packet_caps_response_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1225,9'
          Dst:             tsg_packet_message_request_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1230,9'
          Dst:             tsg_packet_message_response_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1235,9'
          Dst:             tsg_packet_auth_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1239,9'
          Dst:             tsg_packet_reauth_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1243,9'
          Dst:             tsg_print
        - Src:             'libfreerdp/core/gateway/tsg.c:1248,7'
          Dst:             tsg_print
    - functionName:    tsg_set_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3347
      functionLinenumberEnd: 3350
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:3348,2'
          Dst:             winpr_int_assert
    - functionName:    tsg_get_bio
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3339
      functionLinenumberEnd: 3344
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tsg_get_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3331
      functionLinenumberEnd: 3336
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tsg_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3122
      functionLinenumberEnd: 3131
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rpc_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:3125,3'
          Dst:             rpc_free
    - functionName:    tsg_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3103
      functionLinenumberEnd: 3119
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - calloc
        - rpc_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:3104,25'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/tsg.c:3108,13'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/gateway/tsg.c:3110,13'
          Dst:             rpc_new
    - functionName:    tsg_disconnect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2986
      functionLinenumberEnd: 3018
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - TsProxyCloseChannelWriteRequest
        - tsg_transition_to_state
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:3011,8'
          Dst:             TsProxyCloseChannelWriteRequest
        - Src:             'libfreerdp/core/gateway/tsg.c:3014,10'
          Dst:             tsg_transition_to_state
    - functionName:    TsProxyCloseChannelWriteRequest
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2301
      functionLinenumberEnd: 2322
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          117
      EdgeCount:       37
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Free
        - Stream_New
        - TsProxyWriteTunnelContext
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rpc_client_write_call
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2302,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2303,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2305,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2305,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2308,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2310,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/tsg.c:2316,7'
          Dst:             TsProxyWriteTunnelContext
        - Src:             'libfreerdp/core/gateway/tsg.c:2318,9'
          Dst:             rpc_client_write_call
        - Src:             'libfreerdp/core/gateway/tsg.c:2320,2'
          Dst:             Stream_Free
    - functionName:    tsg_transition_to_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2443
      functionLinenumberEnd: 2449
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          68
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - tsg_set_state
        - tsg_state_to_string
        - winpr_int_assert
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2444,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2445,25'
          Dst:             tsg_state_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:2446,25'
          Dst:             tsg_state_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:2448,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2448,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2449,9'
          Dst:             tsg_set_state
    - functionName:    tsg_state_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       20
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/tsg.c:325,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    BIO_s_tsg
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3310
      functionLinenumberEnd: 3328
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_meth_new
        - BIO_meth_set_create
        - BIO_meth_set_ctrl
        - BIO_meth_set_destroy
        - BIO_meth_set_gets
        - BIO_meth_set_puts
        - BIO_meth_set_read
        - BIO_meth_set_write
        - transport_bio_tsg_ctrl
        - transport_bio_tsg_free
        - transport_bio_tsg_gets
        - transport_bio_tsg_new
        - transport_bio_tsg_puts
        - transport_bio_tsg_read
        - transport_bio_tsg_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:3315,23'
          Dst:             BIO_meth_new
        - Src:             'libfreerdp/core/gateway/tsg.c:3318,3'
          Dst:             BIO_meth_set_write
        - Src:             'libfreerdp/core/gateway/tsg.c:3318,3'
          Dst:             transport_bio_tsg_write
        - Src:             'libfreerdp/core/gateway/tsg.c:3319,3'
          Dst:             BIO_meth_set_read
        - Src:             'libfreerdp/core/gateway/tsg.c:3319,3'
          Dst:             transport_bio_tsg_read
        - Src:             'libfreerdp/core/gateway/tsg.c:3320,3'
          Dst:             BIO_meth_set_puts
        - Src:             'libfreerdp/core/gateway/tsg.c:3320,3'
          Dst:             transport_bio_tsg_puts
        - Src:             'libfreerdp/core/gateway/tsg.c:3321,3'
          Dst:             BIO_meth_set_gets
        - Src:             'libfreerdp/core/gateway/tsg.c:3321,3'
          Dst:             transport_bio_tsg_gets
        - Src:             'libfreerdp/core/gateway/tsg.c:3322,3'
          Dst:             BIO_meth_set_ctrl
        - Src:             'libfreerdp/core/gateway/tsg.c:3322,3'
          Dst:             transport_bio_tsg_ctrl
        - Src:             'libfreerdp/core/gateway/tsg.c:3323,3'
          Dst:             BIO_meth_set_create
        - Src:             'libfreerdp/core/gateway/tsg.c:3323,3'
          Dst:             transport_bio_tsg_new
        - Src:             'libfreerdp/core/gateway/tsg.c:3324,3'
          Dst:             BIO_meth_set_destroy
        - Src:             'libfreerdp/core/gateway/tsg.c:3324,3'
          Dst:             transport_bio_tsg_free
    - functionName:    tsg_set_machine_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2887
      functionLinenumberEnd: 2900
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          156
      EdgeCount:       41
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2888,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2897,33'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/core/gateway/tsg.c:2898,32'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2898,32'
          Dst:             winpr_int_assert
    - functionName:    tsg_set_hostname
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2879
      functionLinenumberEnd: 2883
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2880,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2882,18'
          Dst:             ConvertUtf8ToWCharAlloc
    - functionName:    tsg_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2903
      functionLinenumberEnd: 2983
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         71
      ICount:          331
      EdgeCount:       86
      CyclomaticComplexity: 17
      functionsReached:
        - BIO_new
        - BIO_s_tsg
        - BIO_set_data
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WaitForMultipleObjects
        - freerdp_set_last_error_ex
        - freerdp_settings_get_string
        - freerdp_settings_get_uint32
        - freerdp_settings_set_uint32
        - rpc_connect
        - transport_get_context
        - transport_set_layer
        - tsg_check_event_handles
        - tsg_get_event_handles
        - tsg_set_hostname
        - tsg_set_machine_name
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2908,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2911,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2914,24'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/gateway/tsg.c:2915,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2919,2'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/tsg.c:2925,30'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/gateway/tsg.c:2928,9'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/gateway/tsg.c:2933,7'
          Dst:             tsg_set_hostname
        - Src:             'libfreerdp/core/gateway/tsg.c:2936,29'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/tsg.c:2937,7'
          Dst:             tsg_set_machine_name
        - Src:             'libfreerdp/core/gateway/tsg.c:2940,7'
          Dst:             rpc_connect
        - Src:             'libfreerdp/core/gateway/tsg.c:2942,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2942,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2946,11'
          Dst:             tsg_get_event_handles
        - Src:             'libfreerdp/core/gateway/tsg.c:2954,18'
          Dst:             WaitForMultipleObjects
        - Src:             'libfreerdp/core/gateway/tsg.c:2967,8'
          Dst:             tsg_check_event_handles
        - Src:             'libfreerdp/core/gateway/tsg.c:2969,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2969,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2970,4'
          Dst:             transport_set_layer
        - Src:             'libfreerdp/core/gateway/tsg.c:2975,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2975,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2976,21'
          Dst:             BIO_s_tsg
        - Src:             'libfreerdp/core/gateway/tsg.c:2976,13'
          Dst:             BIO_new
        - Src:             'libfreerdp/core/gateway/tsg.c:2981,2'
          Dst:             BIO_set_data
    - functionName:    tsg_get_event_handles
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2818
      functionLinenumberEnd: 2876
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          306
      EdgeCount:       72
      CyclomaticComplexity: 20
      functionsReached:
        - BIO_get_event
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2835,4'
          Dst:             BIO_get_event
        - Src:             'libfreerdp/core/gateway/tsg.c:2846,4'
          Dst:             BIO_get_event
        - Src:             'libfreerdp/core/gateway/tsg.c:2857,4'
          Dst:             BIO_get_event
        - Src:             'libfreerdp/core/gateway/tsg.c:2868,4'
          Dst:             BIO_get_event
    - functionName:    BIO_get_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:70,9'
          Dst:             BIO_ctrl
    - functionName:    TsProxyCloseTunnelReadResponse
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2381
      functionLinenumberEnd: 2404
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          123
      EdgeCount:       39
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek
        - TsProxyReadTunnelContext
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2384,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2385,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2386,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2388,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2388,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2390,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:2394,7'
          Dst:             TsProxyReadTunnelContext
        - Src:             'libfreerdp/core/gateway/tsg.c:2398,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:2400,3'
          Dst:             Stream_Seek
    - functionName:    TsProxyCloseChannelReadResponse
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2325
      functionLinenumberEnd: 2348
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          99
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek
        - TsProxyReadTunnelContext
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2327,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2327,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2332,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:2336,7'
          Dst:             TsProxyReadTunnelContext
        - Src:             'libfreerdp/core/gateway/tsg.c:2341,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:2343,3'
          Dst:             Stream_Seek
    - functionName:    tsg_proxy_reauth
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2511
      functionLinenumberEnd: 2543
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          139
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - TsProxyCreateTunnelWriteRequest
        - TsProxyMakeTunnelCallWriteRequest
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - resetCaps
        - tsg_initialize_version_caps
        - tsg_transition_to_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2514,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2523,7'
          Dst:             tsg_initialize_version_caps
        - Src:             'libfreerdp/core/gateway/tsg.c:2526,7'
          Dst:             TsProxyCreateTunnelWriteRequest
        - Src:             'libfreerdp/core/gateway/tsg.c:2528,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2528,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2529,3'
          Dst:             tsg_transition_to_state
        - Src:             'libfreerdp/core/gateway/tsg.c:2533,7'
          Dst:             TsProxyMakeTunnelCallWriteRequest
        - Src:             'libfreerdp/core/gateway/tsg.c:2536,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2536,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2537,3'
          Dst:             tsg_transition_to_state
        - Src:             'libfreerdp/core/gateway/tsg.c:2541,2'
          Dst:             resetCaps
        - Src:             'libfreerdp/core/gateway/tsg.c:2542,9'
          Dst:             tsg_transition_to_state
    - functionName:    tsg_initialize_version_caps
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2454
      functionLinenumberEnd: 2480
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2455,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2456,2'
          Dst:             winpr_int_assert
    - functionName:    TsProxyCreateTunnelWriteRequest
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1408
      functionLinenumberEnd: 1500
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         246
      ICount:          549
      EdgeCount:       255
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rpc_client_write_call
        - tsg_ndr_pointer_write
        - tsg_ndr_write_reauth
        - tsg_ndr_write_version_caps
        - tsg_packet_id_to_string
        - tsg_packet_to_string
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/tsg.c:1425,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1419,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1419,2'
          Dst:             tsg_packet_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1419,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1420,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/tsg.c:1433,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1433,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1433,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1434,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1434,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1434,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1435,9'
          Dst:             tsg_ndr_pointer_write
        - Src:             'libfreerdp/core/gateway/tsg.c:1438,9'
          Dst:             tsg_ndr_write_version_caps
        - Src:             'libfreerdp/core/gateway/tsg.c:1448,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1449,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1450,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1451,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1452,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1453,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1454,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1455,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1456,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1457,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1459,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1460,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1461,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1463,4'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/tsg.c:1464,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1466,4'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/tsg.c:1467,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1476,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1476,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1476,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1477,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1477,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1477,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1478,9'
          Dst:             tsg_ndr_pointer_write
        - Src:             'libfreerdp/core/gateway/tsg.c:1480,9'
          Dst:             tsg_ndr_write_reauth
        - Src:             'libfreerdp/core/gateway/tsg.c:1487,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1487,4'
          Dst:             tsg_packet_id_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1487,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1496,10'
          Dst:             rpc_client_write_call
        - Src:             'libfreerdp/core/gateway/tsg.c:1498,2'
          Dst:             Stream_Free
    - functionName:    TsProxyMakeTunnelCallWriteRequest
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2074
      functionLinenumberEnd: 2103
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         69
      ICount:          191
      EdgeCount:       76
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_Write_UINT32_unchecked
        - TsProxyWriteTunnelContext
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rpc_client_write_call
        - tsg_ndr_pointer_write
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2082,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2082,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2083,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/tsg.c:2090,7'
          Dst:             TsProxyWriteTunnelContext
        - Src:             'libfreerdp/core/gateway/tsg.c:2092,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2092,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2092,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:2094,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:2095,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:2096,7'
          Dst:             tsg_ndr_pointer_write
        - Src:             'libfreerdp/core/gateway/tsg.c:2098,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:2099,9'
          Dst:             rpc_client_write_call
        - Src:             'libfreerdp/core/gateway/tsg.c:2101,2'
          Dst:             Stream_Free
    - functionName:    resetCaps
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2484
      functionLinenumberEnd: 2488
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2485,2'
          Dst:             winpr_int_assert
    - functionName:    TsProxyCloseTunnelWriteRequest
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2357
      functionLinenumberEnd: 2378
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          117
      EdgeCount:       37
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Free
        - Stream_New
        - TsProxyWriteTunnelContext
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rpc_client_write_call
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2358,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2359,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2361,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2361,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2364,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2366,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/tsg.c:2372,7'
          Dst:             TsProxyWriteTunnelContext
        - Src:             'libfreerdp/core/gateway/tsg.c:2374,9'
          Dst:             rpc_client_write_call
        - Src:             'libfreerdp/core/gateway/tsg.c:2376,2'
          Dst:             Stream_Free
    - functionName:    TsProxySetupReceivePipeWriteRequest
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2416
      functionLinenumberEnd: 2440
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          117
      EdgeCount:       34
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Free
        - Stream_New
        - TsProxyWriteTunnelContext
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rpc_client_write_call
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2419,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2419,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2421,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2422,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2428,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/tsg.c:2434,7'
          Dst:             TsProxyWriteTunnelContext
        - Src:             'libfreerdp/core/gateway/tsg.c:2436,9'
          Dst:             rpc_client_write_call
        - Src:             'libfreerdp/core/gateway/tsg.c:2438,2'
          Dst:             Stream_Free
    - functionName:    TsProxyCreateChannelReadResponse
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2270
      functionLinenumberEnd: 2291
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          131
      EdgeCount:       41
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT32
        - TsProxyReadTunnelContext
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2273,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2274,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2275,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2277,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2277,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2279,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:2283,7'
          Dst:             TsProxyReadTunnelContext
        - Src:             'libfreerdp/core/gateway/tsg.c:2285,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:2287,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:2288,2'
          Dst:             Stream_Seek_UINT32
    - functionName:    TsProxyMakeTunnelCallReadResponse
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2141
      functionLinenumberEnd: 2202
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          270
      EdgeCount:       69
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT32
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u32_le
        - transport_get_context
        - tsg_ndr_pointer_read
        - tsg_ndr_read_TSG_PACKET_MSG_RESPONSE
        - tsg_ndr_read_TSG_PACKET_MSG_RESPONSE_header
        - tsg_packet_id_to_string
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2150,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2151,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2153,12'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/gateway/tsg.c:2154,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2161,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:2164,7'
          Dst:             tsg_ndr_pointer_read
        - Src:             'libfreerdp/core/gateway/tsg.c:2167,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:2170,32'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gateway/tsg.c:2171,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2171,3'
          Dst:             tsg_packet_id_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:2171,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2175,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2175,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2183,7'
          Dst:             tsg_ndr_pointer_read
        - Src:             'libfreerdp/core/gateway/tsg.c:2186,7'
          Dst:             tsg_ndr_read_TSG_PACKET_MSG_RESPONSE_header
        - Src:             'libfreerdp/core/gateway/tsg.c:2191,8'
          Dst:             tsg_ndr_pointer_read
        - Src:             'libfreerdp/core/gateway/tsg.c:2194,8'
          Dst:             tsg_ndr_read_TSG_PACKET_MSG_RESPONSE
    - functionName:    TsProxyCreateChannelWriteRequest
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2216
      functionLinenumberEnd: 2266
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         107
      ICount:          299
      EdgeCount:       117
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - TsProxyWriteTunnelContext
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - _wcslen
        - rpc_client_write_call
        - tsg_ndr_pointer_write
        - tsg_ndr_write_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2217,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2218,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2220,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2220,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2226,23'
          Dst:             _wcslen
        - Src:             'libfreerdp/core/gateway/tsg.c:2230,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/tsg.c:2235,7'
          Dst:             TsProxyWriteTunnelContext
        - Src:             'libfreerdp/core/gateway/tsg.c:2241,8'
          Dst:             tsg_ndr_pointer_write
        - Src:             'libfreerdp/core/gateway/tsg.c:2243,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:2244,8'
          Dst:             tsg_ndr_pointer_write
        - Src:             'libfreerdp/core/gateway/tsg.c:2248,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:2249,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:2251,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:2252,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2252,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2252,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:2253,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:2256,8'
          Dst:             tsg_ndr_pointer_write
        - Src:             'libfreerdp/core/gateway/tsg.c:2259,7'
          Dst:             tsg_ndr_write_string
        - Src:             'libfreerdp/core/gateway/tsg.c:2261,9'
          Dst:             rpc_client_write_call
        - Src:             'libfreerdp/core/gateway/tsg.c:2264,2'
          Dst:             Stream_Free
    - functionName:    TsProxyAuthorizeTunnelReadResponse
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1967
      functionLinenumberEnd: 2058
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         105
      ICount:          430
      EdgeCount:       126
      CyclomaticComplexity: 23
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT32
        - Stream_Pointer
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u32_le
        - tsg_ndr_pointer_read
        - tsg_ndr_read_packet_redirection_flags
        - tsg_ndr_read_packet_response_data
        - tsg_packet_id_to_string
        - tsg_redirect_apply
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1975,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1976,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1979,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1981,7'
          Dst:             tsg_ndr_pointer_read
        - Src:             'libfreerdp/core/gateway/tsg.c:1984,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:1986,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:1987,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:1989,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1989,2'
          Dst:             tsg_packet_id_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1989,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1993,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1993,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1995,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1995,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2002,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2002,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2008,7'
          Dst:             tsg_ndr_pointer_read
        - Src:             'libfreerdp/core/gateway/tsg.c:2011,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:2014,42'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gateway/tsg.c:2017,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2017,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2024,45'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gateway/tsg.c:2027,7'
          Dst:             tsg_ndr_pointer_read
        - Src:             'libfreerdp/core/gateway/tsg.c:2030,52'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gateway/tsg.c:2033,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2033,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2040,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2040,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2047,7'
          Dst:             tsg_ndr_read_packet_redirection_flags
        - Src:             'libfreerdp/core/gateway/tsg.c:2051,49'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gateway/tsg.c:2052,7'
          Dst:             tsg_ndr_read_packet_response_data
        - Src:             'libfreerdp/core/gateway/tsg.c:2055,7'
          Dst:             tsg_redirect_apply
    - functionName:    TsProxyAuthorizeTunnelWriteRequest
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1749
      functionLinenumberEnd: 1795
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         95
      ICount:          348
      EdgeCount:       106
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - Stream_Write_UINT32_unchecked
        - TsProxyWriteTunnelContext
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rpc_client_write_call
        - tsg_ndr_pointer_write
        - tsg_ndr_write_conformant_array
        - tsg_ndr_write_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1755,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1755,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1756,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/tsg.c:1762,7'
          Dst:             TsProxyWriteTunnelContext
        - Src:             'libfreerdp/core/gateway/tsg.c:1764,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/gateway/tsg.c:1770,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1771,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1772,7'
          Dst:             tsg_ndr_pointer_write
        - Src:             'libfreerdp/core/gateway/tsg.c:1774,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1774,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1774,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1775,7'
          Dst:             tsg_ndr_pointer_write
        - Src:             'libfreerdp/core/gateway/tsg.c:1777,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1777,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1777,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1778,7'
          Dst:             tsg_ndr_pointer_write
        - Src:             'libfreerdp/core/gateway/tsg.c:1780,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1780,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1780,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/tsg.c:1782,7'
          Dst:             tsg_ndr_write_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1786,7'
          Dst:             tsg_ndr_write_conformant_array
        - Src:             'libfreerdp/core/gateway/tsg.c:1790,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/tsg.c:1791,9'
          Dst:             rpc_client_write_call
        - Src:             'libfreerdp/core/gateway/tsg.c:1793,2'
          Dst:             Stream_Free
    - functionName:    TsProxyCreateTunnelReadResponse
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1656
      functionLinenumberEnd: 1735
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         85
      ICount:          385
      EdgeCount:       101
      CyclomaticComplexity: 18
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u32_le
        - transport_get_context
        - tsg_ndr_pointer_read
        - tsg_ndr_read_caps_response
        - tsg_ndr_read_quarenc_data
        - tsg_ndr_read_quarenc_response
        - tsg_ndr_read_tunnel_context
        - tsg_packet_id_to_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:1664,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1665,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1666,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1668,12'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/gateway/tsg.c:1669,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:1674,7'
          Dst:             tsg_ndr_pointer_read
        - Src:             'libfreerdp/core/gateway/tsg.c:1677,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:1679,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:1680,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/tsg.c:1682,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1682,2'
          Dst:             tsg_packet_id_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1682,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1687,8'
          Dst:             tsg_ndr_read_caps_response
        - Src:             'libfreerdp/core/gateway/tsg.c:1698,8'
          Dst:             tsg_ndr_pointer_read
        - Src:             'libfreerdp/core/gateway/tsg.c:1701,8'
          Dst:             tsg_ndr_read_quarenc_response
        - Src:             'libfreerdp/core/gateway/tsg.c:1705,8'
          Dst:             tsg_ndr_read_quarenc_data
        - Src:             'libfreerdp/core/gateway/tsg.c:1709,8'
          Dst:             tsg_ndr_read_tunnel_context
        - Src:             'libfreerdp/core/gateway/tsg.c:1716,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1716,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:1724,22'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gateway/tsg.c:1727,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:1727,4'
          Dst:             tsg_packet_id_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:1727,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    tsg_recv_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2546
      functionLinenumberEnd: 2803
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         252
      ICount:          1067
      EdgeCount:       307
      CyclomaticComplexity: 57
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetRemainingLength
        - Stream_Seek
        - TsProxyAuthorizeTunnelReadResponse
        - TsProxyAuthorizeTunnelWriteRequest
        - TsProxyCloseChannelReadResponse
        - TsProxyCloseChannelWriteRequest
        - TsProxyCloseTunnelReadResponse
        - TsProxyCloseTunnelWriteRequest
        - TsProxyCreateChannelReadResponse
        - TsProxyCreateChannelWriteRequest
        - TsProxyCreateTunnelReadResponse
        - TsProxyMakeTunnelCallReadResponse
        - TsProxyMakeTunnelCallWriteRequest
        - TsProxySetupReceivePipeWriteRequest
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rpc_client_call_find_by_id
        - tsg_proxy_reauth
        - tsg_state_to_string
        - tsg_transition_to_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/tsg.c:2566,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2551,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2552,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2553,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2560,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/tsg.c:2562,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/gateway/tsg.c:2573,9'
          Dst:             TsProxyCreateTunnelReadResponse
        - Src:             'libfreerdp/core/gateway/tsg.c:2575,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2575,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2579,9'
          Dst:             tsg_transition_to_state
        - Src:             'libfreerdp/core/gateway/tsg.c:2582,9'
          Dst:             TsProxyAuthorizeTunnelWriteRequest
        - Src:             'libfreerdp/core/gateway/tsg.c:2584,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2584,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2597,9'
          Dst:             TsProxyAuthorizeTunnelReadResponse
        - Src:             'libfreerdp/core/gateway/tsg.c:2599,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2599,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2603,9'
          Dst:             tsg_transition_to_state
        - Src:             'libfreerdp/core/gateway/tsg.c:2608,10'
          Dst:             TsProxyMakeTunnelCallWriteRequest
        - Src:             'libfreerdp/core/gateway/tsg.c:2611,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2611,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2616,9'
          Dst:             TsProxyCreateChannelWriteRequest
        - Src:             'libfreerdp/core/gateway/tsg.c:2618,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2618,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2627,11'
          Dst:             rpc_client_call_find_by_id
        - Src:             'libfreerdp/core/gateway/tsg.c:2634,10'
          Dst:             TsProxyMakeTunnelCallReadResponse
        - Src:             'libfreerdp/core/gateway/tsg.c:2636,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2636,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2646,10'
          Dst:             TsProxyCreateChannelReadResponse
        - Src:             'libfreerdp/core/gateway/tsg.c:2649,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2649,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2658,10'
          Dst:             tsg_transition_to_state
        - Src:             'libfreerdp/core/gateway/tsg.c:2663,11'
          Dst:             TsProxySetupReceivePipeWriteRequest
        - Src:             'libfreerdp/core/gateway/tsg.c:2665,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2665,7'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2671,11'
          Dst:             TsProxyCloseChannelWriteRequest
        - Src:             'libfreerdp/core/gateway/tsg.c:2673,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2673,7'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2677,11'
          Dst:             TsProxyCloseTunnelWriteRequest
        - Src:             'libfreerdp/core/gateway/tsg.c:2679,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2679,7'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2684,10'
          Dst:             tsg_transition_to_state
        - Src:             'libfreerdp/core/gateway/tsg.c:2689,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2689,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2699,11'
          Dst:             rpc_client_call_find_by_id
        - Src:             'libfreerdp/core/gateway/tsg.c:2706,10'
          Dst:             TsProxyMakeTunnelCallReadResponse
        - Src:             'libfreerdp/core/gateway/tsg.c:2708,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2708,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2715,11'
          Dst:             tsg_proxy_reauth
        - Src:             'libfreerdp/core/gateway/tsg.c:2721,10'
          Dst:             TsProxyCloseChannelReadResponse
        - Src:             'libfreerdp/core/gateway/tsg.c:2723,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2723,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2733,10'
          Dst:             TsProxyCloseTunnelReadResponse
        - Src:             'libfreerdp/core/gateway/tsg.c:2735,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2735,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2748,9'
          Dst:             TsProxyCloseChannelReadResponse
        - Src:             'libfreerdp/core/gateway/tsg.c:2750,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2750,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2754,9'
          Dst:             tsg_transition_to_state
        - Src:             'libfreerdp/core/gateway/tsg.c:2757,9'
          Dst:             TsProxyCloseChannelWriteRequest
        - Src:             'libfreerdp/core/gateway/tsg.c:2759,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2759,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2763,9'
          Dst:             TsProxyMakeTunnelCallWriteRequest
        - Src:             'libfreerdp/core/gateway/tsg.c:2766,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2766,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2778,9'
          Dst:             TsProxyCloseTunnelReadResponse
        - Src:             'libfreerdp/core/gateway/tsg.c:2780,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2780,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2784,9'
          Dst:             tsg_transition_to_state
        - Src:             'libfreerdp/core/gateway/tsg.c:2795,22'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gateway/tsg.c:2798,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2798,4'
          Dst:             tsg_state_to_string
        - Src:             'libfreerdp/core/gateway/tsg.c:2798,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    tsg_proxy_begin
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/tsg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2491
      functionLinenumberEnd: 2508
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          89
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - TsProxyCreateTunnelWriteRequest
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - resetCaps
        - tsg_initialize_version_caps
        - tsg_transition_to_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/tsg.c:2494,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/tsg.c:2497,7'
          Dst:             tsg_initialize_version_caps
        - Src:             'libfreerdp/core/gateway/tsg.c:2498,7'
          Dst:             TsProxyCreateTunnelWriteRequest
        - Src:             'libfreerdp/core/gateway/tsg.c:2500,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/tsg.c:2500,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/tsg.c:2501,3'
          Dst:             tsg_transition_to_state
        - Src:             'libfreerdp/core/gateway/tsg.c:2505,2'
          Dst:             resetCaps
        - Src:             'libfreerdp/core/gateway/tsg.c:2507,9'
          Dst:             tsg_transition_to_state
    - functionName:    BIO_wait_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:103,9'
          Dst:             BIO_ctrl
    - functionName:    BIO_write_blocked
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:92,9'
          Dst:             BIO_ctrl
    - functionName:    BIO_read_blocked
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:86,9'
          Dst:             BIO_ctrl
    - functionName:    rdg_process_unknown_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1839
      functionLinenumberEnd: 1844
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1842,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1842,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdg_process_service_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1820
      functionLinenumberEnd: 1836
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          139
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - rdg_read_http_unicode_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1824,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1825,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1828,7'
          Dst:             rdg_read_http_unicode_string
        - Src:             'libfreerdp/core/gateway/rdg.c:1830,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1830,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1834,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rdg_read_http_unicode_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          132
      EdgeCount:       36
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_ConstPointer
        - Stream_GetRemainingLength
        - Stream_SafeSeekEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:292,15'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gateway/rdg.c:295,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:297,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:297,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:301,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rdg.c:304,21'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/gateway/rdg.c:307,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/gateway/rdg.c:309,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:309,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:    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:    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:    11
      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_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,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_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:    10
      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:    rdg_process_keep_alive_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1799
      functionLinenumberEnd: 1817
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          107
      EdgeCount:       41
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - rdg_write_packet
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1804,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rdg.c:1809,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:1810,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:1811,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1811,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1811,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:1812,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/rdg.c:1813,11'
          Dst:             rdg_write_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:1814,2'
          Dst:             Stream_Free
    - 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:    31
      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_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:    12
      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:    rdg_write_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rdg_write_chunked
        - websocket_context_write_wstream
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:359,10'
          Dst:             websocket_context_write_wstream
        - Src:             'libfreerdp/core/gateway/rdg.c:362,9'
          Dst:             rdg_write_chunked
    - functionName:    rdg_write_chunked
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          94
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_write
        - ERR_clear_error
        - Stream_Buffer
        - Stream_Free
        - Stream_Length
        - Stream_New
        - Stream_SealLength
        - Stream_Write
        - snprintf
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:330,66'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rdg.c:330,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gateway/rdg.c:332,26'
          Dst:             strnlen
        - Src:             'libfreerdp/core/gateway/rdg.c:332,66'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rdg.c:332,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rdg.c:337,34'
          Dst:             strnlen
        - Src:             'libfreerdp/core/gateway/rdg.c:337,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/rdg.c:338,23'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/rdg.c:338,47'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rdg.c:338,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/rdg.c:339,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/rdg.c:340,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/rdg.c:341,8'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rdg.c:345,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/gateway/rdg.c:349,2'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/gateway/rdg.c:350,26'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/rdg.c:350,11'
          Dst:             BIO_write
        - Src:             'libfreerdp/core/gateway/rdg.c:351,2'
          Dst:             Stream_Free
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1325,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:    7
      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_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,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_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:    rdg_process_close_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1769
      functionLinenumberEnd: 1796
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         57
      ICount:          156
      EdgeCount:       60
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - freerdp_set_last_error_ex
        - rdg_write_packet
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1776,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:1778,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rdg.c:1781,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/rdg.c:1783,11'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rdg.c:1787,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:1788,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:1789,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1789,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1789,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:1790,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:1791,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/rdg.c:1792,11'
          Dst:             rdg_write_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:1793,2'
          Dst:             Stream_Free
    - 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:    11
      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:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    rdg_process_control_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1848
      functionLinenumberEnd: 1933
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          233
      EdgeCount:       51
      CyclomaticComplexity: 11
      functionsReached:
        - BIO_test_flags
        - EnterCriticalSection
        - LeaveCriticalSection
        - Stream_Free
        - Stream_New
        - Stream_Pointer
        - Stream_ResetPosition
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdg_process_close_packet
        - rdg_process_keep_alive_packet
        - rdg_process_service_message
        - rdg_process_unknown_packet
        - rdg_shall_abort
        - rdg_socket_read
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rdg.c:1901,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1862,7'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rdg.c:1869,8'
          Dst:             rdg_shall_abort
        - Src:             'libfreerdp/core/gateway/rdg.c:1871,5'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/gateway/rdg.c:1874,47'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gateway/rdg.c:1874,13'
          Dst:             rdg_socket_read
        - Src:             'libfreerdp/core/gateway/rdg.c:1879,10'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/gateway/rdg.c:1881,6'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/gateway/rdg.c:1888,4'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/gateway/rdg.c:1893,5'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/gateway/rdg.c:1898,3'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/gateway/rdg.c:1904,4'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/gateway/rdg.c:1905,13'
          Dst:             rdg_process_close_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:1906,4'
          Dst:             LeaveCriticalSection
        - Src:             'libfreerdp/core/gateway/rdg.c:1910,4'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/gateway/rdg.c:1911,13'
          Dst:             rdg_process_keep_alive_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:1912,4'
          Dst:             LeaveCriticalSection
        - Src:             'libfreerdp/core/gateway/rdg.c:1918,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1918,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1922,13'
          Dst:             rdg_process_service_message
        - Src:             'libfreerdp/core/gateway/rdg.c:1927,13'
          Dst:             rdg_process_unknown_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:1931,2'
          Dst:             Stream_Free
    - functionName:    rdg_shall_abort
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_shall_disconnect_context
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:389,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:390,9'
          Dst:             freerdp_shall_disconnect_context
    - functionName:    rdg_socket_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          93
      EdgeCount:       18
      CyclomaticComplexity: 3
      functionsReached:
        - BIO_read
        - ERR_clear_error
        - http_chuncked_read
        - websocket_context_read
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rdg.c:375,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:368,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:373,10'
          Dst:             websocket_context_read
        - Src:             'libfreerdp/core/gateway/rdg.c:378,4'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/gateway/rdg.c:379,11'
          Dst:             BIO_read
        - Src:             'libfreerdp/core/gateway/rdg.c:381,11'
          Dst:             http_chuncked_read
    - functionName:    Stream_ResetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1358,3'
          Dst:             winpr_int_assert
    - functionName:    BIO_wait_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:97,9'
          Dst:             BIO_ctrl
    - functionName:    rdg_read_data_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1936
      functionLinenumberEnd: 2021
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          292
      EdgeCount:       60
      CyclomaticComplexity: 18
      functionsReached:
        - BIO_test_flags
        - BIO_wait_read
        - rdg_process_control_packet
        - rdg_shall_abort
        - rdg_socket_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1949,8'
          Dst:             rdg_shall_abort
        - Src:             'libfreerdp/core/gateway/rdg.c:1952,13'
          Dst:             rdg_socket_read
        - Src:             'libfreerdp/core/gateway/rdg.c:1957,10'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/gateway/rdg.c:1963,5'
          Dst:             BIO_wait_read
        - Src:             'libfreerdp/core/gateway/rdg.c:1975,13'
          Dst:             rdg_process_control_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:1987,8'
          Dst:             rdg_shall_abort
        - Src:             'libfreerdp/core/gateway/rdg.c:1990,8'
          Dst:             rdg_socket_read
        - Src:             'libfreerdp/core/gateway/rdg.c:1995,10'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/gateway/rdg.c:1998,5'
          Dst:             BIO_wait_read
        - Src:             'libfreerdp/core/gateway/rdg.c:2007,11'
          Dst:             rdg_socket_read
        - Src:             'libfreerdp/core/gateway/rdg.c:2011,8'
          Dst:             BIO_test_flags
    - functionName:    rdg_write_chunked_data_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1720
      functionLinenumberEnd: 1757
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          207
      EdgeCount:       64
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Buffer
        - Stream_Free
        - Stream_Length
        - Stream_New
        - Stream_SealLength
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - freerdp_tls_write_all
        - snprintf
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1734,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gateway/rdg.c:1735,31'
          Dst:             strnlen
        - Src:             'libfreerdp/core/gateway/rdg.c:1735,11'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rdg.c:1740,34'
          Dst:             strnlen
        - Src:             'libfreerdp/core/gateway/rdg.c:1740,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/rdg.c:1741,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:1742,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:1743,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1743,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1743,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:1744,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1744,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1744,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:1745,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/rdg.c:1746,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/rdg.c:1747,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/rdg.c:1748,8'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rdg.c:1750,45'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/rdg.c:1750,11'
          Dst:             freerdp_tls_write_all
        - Src:             'libfreerdp/core/gateway/rdg.c:1751,2'
          Dst:             Stream_Free
    - functionName:    rdg_write_websocket_data_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1678
      functionLinenumberEnd: 1717
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         330
      ICount:          1191
      EdgeCount:       369
      CyclomaticComplexity: 41
      functionsReached:
        - Stream_StaticConstInit
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - websocket_context_mask_and_send
        - websocket_context_packet_new
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1679,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1691,6'
          Dst:             websocket_context_packet_new
        - Src:             'libfreerdp/core/gateway/rdg.c:1695,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1695,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1695,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1695,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1695,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1695,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1695,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1695,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1695,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:1698,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1698,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1698,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1698,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1698,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1698,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1698,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1698,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1698,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:1701,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1701,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1701,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1701,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1701,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1701,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1701,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1701,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1701,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:1703,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1703,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1703,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1703,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1703,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1703,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1703,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1703,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1703,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:1710,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1712,2'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/core/gateway/rdg.c:1713,7'
          Dst:             websocket_context_mask_and_send
    - functionName:    rdg_write_data_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1760
      functionLinenumberEnd: 1766
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - rdg_write_chunked_data_packet
        - rdg_write_websocket_data_packet
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1761,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1763,10'
          Dst:             rdg_write_websocket_data_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:1765,10'
          Dst:             rdg_write_chunked_data_packet
    - functionName:    rdg_bio_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2195
      functionLinenumberEnd: 2197
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rdg_bio_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2188
      functionLinenumberEnd: 2191
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_set_flags
        - BIO_set_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:2189,2'
          Dst:             BIO_set_init
        - Src:             'libfreerdp/core/gateway/rdg.c:2190,2'
          Dst:             BIO_set_flags
    - functionName:    rdg_bio_ctrl
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2097
      functionLinenumberEnd: 2185
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          278
      EdgeCount:       64
      CyclomaticComplexity: 17
      functionsReached:
        - BIO_ctrl
        - BIO_get_data
        - BIO_read_blocked
        - BIO_wait_read
        - BIO_wait_write
        - BIO_write_blocked
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:2099,25'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/gateway/rdg.c:2105,9'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/core/gateway/rdg.c:2107,10'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/core/gateway/rdg.c:2117,12'
          Dst:             BIO_read_blocked
        - Src:             'libfreerdp/core/gateway/rdg.c:2126,12'
          Dst:             BIO_write_blocked
        - Src:             'libfreerdp/core/gateway/rdg.c:2133,7'
          Dst:             BIO_read_blocked
        - Src:             'libfreerdp/core/gateway/rdg.c:2134,11'
          Dst:             BIO_wait_read
        - Src:             'libfreerdp/core/gateway/rdg.c:2135,12'
          Dst:             BIO_write_blocked
        - Src:             'libfreerdp/core/gateway/rdg.c:2136,11'
          Dst:             BIO_wait_write
        - Src:             'libfreerdp/core/gateway/rdg.c:2148,7'
          Dst:             BIO_write_blocked
        - Src:             'libfreerdp/core/gateway/rdg.c:2149,13'
          Dst:             BIO_wait_write
        - Src:             'libfreerdp/core/gateway/rdg.c:2150,12'
          Dst:             BIO_read_blocked
        - Src:             'libfreerdp/core/gateway/rdg.c:2151,13'
          Dst:             BIO_wait_read
        - Src:             'libfreerdp/core/gateway/rdg.c:2165,12'
          Dst:             BIO_ctrl
    - functionName:    rdg_bio_gets
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2089
      functionLinenumberEnd: 2093
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rdg_bio_puts
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2081
      functionLinenumberEnd: 2084
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rdg_bio_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2054
      functionLinenumberEnd: 2078
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - BIO_set_flags
        - WSASetLastError
        - rdg_read_data_packet
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:2056,25'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/gateway/rdg.c:2059,11'
          Dst:             rdg_read_data_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:2063,3'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/gateway/rdg.c:2068,3'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/gateway/rdg.c:2069,3'
          Dst:             WSASetLastError
        - Src:             'libfreerdp/core/gateway/rdg.c:2074,3'
          Dst:             BIO_set_flags
    - functionName:    rdg_bio_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2024
      functionLinenumberEnd: 2051
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - BIO_set_flags
        - EnterCriticalSection
        - LeaveCriticalSection
        - WSASetLastError
        - rdg_write_data_packet
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:2026,25'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/gateway/rdg.c:2030,2'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/gateway/rdg.c:2031,2'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/gateway/rdg.c:2032,11'
          Dst:             rdg_write_data_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:2033,2'
          Dst:             LeaveCriticalSection
        - Src:             'libfreerdp/core/gateway/rdg.c:2037,3'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/gateway/rdg.c:2042,3'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/gateway/rdg.c:2043,3'
          Dst:             WSASetLastError
        - Src:             'libfreerdp/core/gateway/rdg.c:2047,3'
          Dst:             BIO_set_flags
    - 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:    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:    1
      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_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:    1
      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_Get_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u16_le
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:369,10'
          Dst:             stream_read_u16_le
    - functionName:    Stream_Get_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:413,10'
          Dst:             stream_read_u32_le
    - functionName:    rdg_process_channel_response_optional
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1059
      functionLinenumberEnd: 1087
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          215
      EdgeCount:       55
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogEx
        - Stream_Get_UINT16
        - Stream_Get_UINT32
        - Stream_SafeSeekEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1062,8'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:1064,28'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gateway/rdg.c:1065,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1065,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1069,8'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:1071,26'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/gateway/rdg.c:1072,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1072,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1076,8'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:1078,26'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/gateway/rdg.c:1079,8'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:1081,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1081,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1082,8'
          Dst:             Stream_SafeSeekEx
    - functionName:    channel_response_fields_present_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - flags_to_string
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:259,9'
          Dst:             flags_to_string
    - functionName:    flags_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          68
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - snprintf
        - winpr_str_append
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:249,4'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gateway/rdg.c:252,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gateway/rdg.c:253,2'
          Dst:             winpr_str_append
    - functionName:    rdg_send_channel_create
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 653
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         116
      ICount:          312
      EdgeCount:       122
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - Stream_Write_UTF16_String
        - freerdp_settings_get_string_as_utf16
        - rdg_write_packet
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:618,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:619,15'
          Dst:             freerdp_settings_get_string_as_utf16
        - Src:             'libfreerdp/core/gateway/rdg.c:627,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rdg.c:632,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:633,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:634,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:634,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:634,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:635,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:636,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:637,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:637,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:637,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:639,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:640,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:640,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:640,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:641,7'
          Dst:             Stream_Write_UTF16_String
        - Src:             'libfreerdp/core/gateway/rdg.c:644,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/rdg.c:645,11'
          Dst:             rdg_write_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:648,2'
          Dst:             Stream_Free
    - 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:    4
      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_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:    tunnel_authorization_response_fields_present_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - flags_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:271,9'
          Dst:             flags_to_string
    - functionName:    capabilities_enum_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - flags_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:285,9'
          Dst:             flags_to_string
    - functionName:    rdg_send_tunnel_authorization
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 572
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         82
      ICount:          233
      EdgeCount:       88
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UTF16_String
        - freerdp_settings_get_string_as_utf16
        - rdg_write_packet
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:575,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:577,22'
          Dst:             freerdp_settings_get_string_as_utf16
        - Src:             'libfreerdp/core/gateway/rdg.c:586,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rdg.c:591,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:592,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:593,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:593,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:593,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:594,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:595,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:595,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:595,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:596,7'
          Dst:             Stream_Write_UTF16_String
        - Src:             'libfreerdp/core/gateway/rdg.c:598,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/rdg.c:599,11'
          Dst:             rdg_write_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:602,2'
          Dst:             Stream_Free
    - functionName:    rdg_process_tunnel_response_optional
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 835
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         80
      ICount:          345
      EdgeCount:       96
      CyclomaticComplexity: 18
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetRemainingLength
        - Stream_SafeSeekEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - capabilities_enum_to_string
        - rdg_read_http_unicode_string
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:839,8'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/gateway/rdg.c:841,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:841,4'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gateway/rdg.c:841,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:850,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:853,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rdg.c:854,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:854,3'
          Dst:             capabilities_enum_to_string
        - Src:             'libfreerdp/core/gateway/rdg.c:854,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:860,8'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/gateway/rdg.c:862,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:862,4'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gateway/rdg.c:862,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:868,8'
          Dst:             rdg_read_http_unicode_string
        - Src:             'libfreerdp/core/gateway/rdg.c:870,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:870,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:881,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:882,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:885,8'
          Dst:             rdg_read_http_unicode_string
        - Src:             'libfreerdp/core/gateway/rdg.c:887,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:887,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:891,10'
          Dst:             WLog_Print_dbg_tag
    - functionName:    tunnel_response_fields_present_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - flags_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:265,9'
          Dst:             flags_to_string
    - 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:    rdg_send_tunnel_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 568
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         104
      ICount:          294
      EdgeCount:       111
      CyclomaticComplexity: 9
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UTF16_String
        - rdg_write_packet
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:527,7'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/core/gateway/rdg.c:537,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rdg.c:542,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:543,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:544,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:544,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:544,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:545,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:546,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:546,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:546,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:547,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:551,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:551,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:551,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:552,8'
          Dst:             Stream_Write_UTF16_String
        - Src:             'libfreerdp/core/gateway/rdg.c:556,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/rdg.c:557,11'
          Dst:             rdg_write_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:560,2'
          Dst:             Stream_Free
    - functionName:    rdg_send_extauth_sspi
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         72
      ICount:          197
      EdgeCount:       74
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - credssp_auth_get_output_buffer
        - rdg_write_packet
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:486,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:488,31'
          Dst:             credssp_auth_get_output_buffer
        - Src:             'libfreerdp/core/gateway/rdg.c:493,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rdg.c:498,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:499,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:500,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:500,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:500,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:501,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:502,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:502,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:502,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:503,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/rdg.c:505,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/rdg.c:506,11'
          Dst:             rdg_write_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:507,2'
          Dst:             Stream_Free
    - functionName:    extended_auth_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - flags_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:280,9'
          Dst:             flags_to_string
    - 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:    rdg_pkt_type_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 237
      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:   'libfreerdp/core/gateway/rdg.c:216,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    rdg_process_extauth_sspi
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1004
      functionLinenumberEnd: 1056
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          200
      EdgeCount:       46
      CyclomaticComplexity: 11
      functionsReached:
        - GetSecurityStatusString
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Read
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - credssp_auth_authenticate
        - credssp_auth_free
        - credssp_auth_have_output_token
        - credssp_auth_is_complete
        - credssp_auth_take_input_buffer
        - rdg_send_extauth_sspi
        - rdg_send_tunnel_request
        - stream_read_i32_le
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1010,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1012,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:1015,2'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/gateway/rdg.c:1016,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rdg.c:1020,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1020,3'
          Dst:             GetSecurityStatusString
        - Src:             'libfreerdp/core/gateway/rdg.c:1020,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1027,7'
          Dst:             credssp_auth_is_complete
        - Src:             'libfreerdp/core/gateway/rdg.c:1029,4'
          Dst:             credssp_auth_free
        - Src:             'libfreerdp/core/gateway/rdg.c:1031,11'
          Dst:             rdg_send_tunnel_request
        - Src:             'libfreerdp/core/gateway/rdg.c:1036,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:1042,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/gateway/rdg.c:1047,2'
          Dst:             credssp_auth_take_input_buffer
        - Src:             'libfreerdp/core/gateway/rdg.c:1049,6'
          Dst:             credssp_auth_authenticate
        - Src:             'libfreerdp/core/gateway/rdg.c:1052,6'
          Dst:             credssp_auth_have_output_token
        - Src:             'libfreerdp/core/gateway/rdg.c:1053,10'
          Dst:             rdg_send_extauth_sspi
    - functionName:    rdg_process_channel_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1090
      functionLinenumberEnd: 1124
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          171
      EdgeCount:       44
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT16
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - channel_response_fields_present_to_string
        - freerdp_set_last_error_ex
        - rdg_process_channel_response_optional
        - rpc_error_to_string
        - stream_read_u16_le
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1094,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1094,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1101,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:1104,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rdg.c:1105,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rdg.c:1106,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/gateway/rdg.c:1107,10'
          Dst:             rpc_error_to_string
        - Src:             'libfreerdp/core/gateway/rdg.c:1108,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1108,2'
          Dst:             channel_response_fields_present_to_string
        - Src:             'libfreerdp/core/gateway/rdg.c:1108,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1113,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1113,3'
          Dst:             channel_response_fields_present_to_string
        - Src:             'libfreerdp/core/gateway/rdg.c:1113,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1115,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/rdg.c:1119,7'
          Dst:             rdg_process_channel_response_optional
    - functionName:    Stream_Seek_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1203
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1204,3'
          Dst:             Stream_Seek
    - functionName:    rdg_process_tunnel_authorization_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 936
      functionLinenumberEnd: 1001
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          355
      EdgeCount:       94
      CyclomaticComplexity: 19
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogEx
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek
        - Stream_Seek_UINT16
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_set_last_error_ex
        - rdg_send_channel_create
        - rpc_error_to_string
        - stream_read_u16_le
        - stream_read_u32_le
        - tunnel_authorization_response_fields_present_to_string
        - utils_apply_gateway_policy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:940,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:940,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:947,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:950,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rdg.c:951,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rdg.c:952,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/gateway/rdg.c:953,10'
          Dst:             rpc_error_to_string
        - Src:             'libfreerdp/core/gateway/rdg.c:954,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:954,2'
          Dst:             tunnel_authorization_response_fields_present_to_string
        - Src:             'libfreerdp/core/gateway/rdg.c:954,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:960,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:960,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:961,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/rdg.c:968,8'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:970,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rdg.c:973,8'
          Dst:             utils_apply_gateway_policy
        - Src:             'libfreerdp/core/gateway/rdg.c:980,8'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:982,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rdg.c:983,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:983,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:990,8'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:992,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rdg.c:994,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:994,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:995,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:997,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/gateway/rdg.c:1000,9'
          Dst:             rdg_send_channel_create
    - functionName:    rdg_process_tunnel_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 899
      functionLinenumberEnd: 933
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          177
      EdgeCount:       46
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT16
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_set_last_error_ex
        - rdg_process_tunnel_response_optional
        - rdg_send_tunnel_authorization
        - rpc_error_to_string
        - stream_read_u16_le
        - stream_read_u32_le
        - tunnel_response_fields_present_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:904,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:904,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:911,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:914,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rdg.c:915,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rdg.c:916,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rdg.c:917,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/gateway/rdg.c:918,10'
          Dst:             rpc_error_to_string
        - Src:             'libfreerdp/core/gateway/rdg.c:919,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:919,2'
          Dst:             tunnel_response_fields_present_to_string
        - Src:             'libfreerdp/core/gateway/rdg.c:919,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:924,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:924,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:925,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/rdg.c:929,7'
          Dst:             rdg_process_tunnel_response_optional
        - Src:             'libfreerdp/core/gateway/rdg.c:932,9'
          Dst:             rdg_send_tunnel_authorization
    - functionName:    rdg_process_handshake_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 793
      functionLinenumberEnd: 832
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          195
      EdgeCount:       50
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - extended_auth_to_string
        - freerdp_set_last_error_ex
        - rdg_send_extauth_sspi
        - rdg_send_tunnel_request
        - rpc_error_to_string
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:800,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:800,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:807,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:810,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rdg.c:811,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rdg.c:812,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rdg.c:813,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rdg.c:814,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rdg.c:815,10'
          Dst:             rpc_error_to_string
        - Src:             'libfreerdp/core/gateway/rdg.c:816,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:816,2'
          Dst:             extended_auth_to_string
        - Src:             'libfreerdp/core/gateway/rdg.c:816,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:823,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:823,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:824,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/rdg.c:829,10'
          Dst:             rdg_send_extauth_sspi
        - Src:             'libfreerdp/core/gateway/rdg.c:831,9'
          Dst:             rdg_send_tunnel_request
    - functionName:    rdg_process_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1127
      functionLinenumberEnd: 1188
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         54
      ICount:          246
      EdgeCount:       61
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetRemainingLength
        - Stream_Length
        - Stream_ResetPosition
        - Stream_Seek_UINT16
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdg_pkt_type_to_string
        - rdg_process_channel_response
        - rdg_process_extauth_sspi
        - rdg_process_handshake_response
        - rdg_process_tunnel_authorization_response
        - rdg_process_tunnel_response
        - stream_read_u16_le
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rdg.c:1147,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1131,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/gateway/rdg.c:1133,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gateway/rdg.c:1136,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rdg.c:1137,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/gateway/rdg.c:1138,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rdg.c:1140,6'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rdg.c:1142,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1142,3'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rdg.c:1142,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1150,13'
          Dst:             rdg_process_handshake_response
        - Src:             'libfreerdp/core/gateway/rdg.c:1154,13'
          Dst:             rdg_process_tunnel_response
        - Src:             'libfreerdp/core/gateway/rdg.c:1158,13'
          Dst:             rdg_process_tunnel_authorization_response
        - Src:             'libfreerdp/core/gateway/rdg.c:1162,13'
          Dst:             rdg_process_channel_response
        - Src:             'libfreerdp/core/gateway/rdg.c:1166,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1166,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1171,13'
          Dst:             rdg_process_extauth_sspi
        - Src:             'libfreerdp/core/gateway/rdg.c:1175,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1175,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1182,22'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gateway/rdg.c:1184,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1184,4'
          Dst:             rdg_pkt_type_to_string
        - Src:             'libfreerdp/core/gateway/rdg.c:1184,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdg_receive_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          124
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_Buffer
        - Stream_EnsureCapacity
        - Stream_Free
        - Stream_New
        - Stream_Seek
        - Stream_SetLength
        - rdg_read_all
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:425,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rdg.c:430,47'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/rdg.c:430,7'
          Dst:             rdg_read_all
        - Src:             'libfreerdp/core/gateway/rdg.c:433,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/gateway/rdg.c:434,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rdg.c:436,35'
          Dst:             Stream_EnsureCapacity
        - Src:             'libfreerdp/core/gateway/rdg.c:440,47'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/rdg.c:440,7'
          Dst:             rdg_read_all
        - Src:             'libfreerdp/core/gateway/rdg.c:444,7'
          Dst:             Stream_SetLength
        - Src:             'libfreerdp/core/gateway/rdg.c:449,2'
          Dst:             Stream_Free
    - functionName:    rdg_read_all
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          226
      EdgeCount:       65
      CyclomaticComplexity: 12
      functionsReached:
        - BIO_test_flags
        - Sleep
        - freerdp_shall_disconnect_context
        - rdg_socket_read
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:401,7'
          Dst:             freerdp_shall_disconnect_context
        - Src:             'libfreerdp/core/gateway/rdg.c:404,16'
          Dst:             rdg_socket_read
        - Src:             'libfreerdp/core/gateway/rdg.c:407,9'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/gateway/rdg.c:410,4'
          Dst:             Sleep
        - Src:             'libfreerdp/core/gateway/rdg.c:414,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:414,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:415,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:415,14'
          Dst:             winpr_int_assert
    - functionName:    rdg_send_handshake
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 454
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         83
      ICount:          165
      EdgeCount:       85
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - rdg_write_packet
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:456,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rdg.c:461,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:462,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:463,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:464,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:465,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:466,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:467,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:467,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:467,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rdg.c:468,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/rdg.c:469,11'
          Dst:             rdg_write_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:470,2'
          Dst:             Stream_Free
    - functionName:    rdg_set_auth_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 657
      functionLinenumberEnd: 680
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          102
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - credssp_auth_get_output_buffer
        - credssp_auth_pkg_name
        - crypto_base64_encode
        - http_request_set_auth_param
        - http_request_set_auth_scheme
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:658,31'
          Dst:             credssp_auth_get_output_buffer
        - Src:             'libfreerdp/core/gateway/rdg.c:666,21'
          Dst:             crypto_base64_encode
        - Src:             'libfreerdp/core/gateway/rdg.c:671,51'
          Dst:             credssp_auth_pkg_name
        - Src:             'libfreerdp/core/gateway/rdg.c:671,13'
          Dst:             http_request_set_auth_scheme
        - Src:             'libfreerdp/core/gateway/rdg.c:672,13'
          Dst:             http_request_set_auth_param
    - functionName:    rdg_build_http_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 684
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          177
      EdgeCount:       46
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_SealLength
        - http_context_get_uri
        - http_request_free
        - http_request_new
        - http_request_set_auth_param
        - http_request_set_auth_scheme
        - http_request_set_method
        - http_request_set_transfer_encoding
        - http_request_set_uri
        - http_request_write
        - rdg_set_auth_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:692,8'
          Dst:             http_context_get_uri
        - Src:             'libfreerdp/core/gateway/rdg.c:693,12'
          Dst:             http_request_new
        - Src:             'libfreerdp/core/gateway/rdg.c:698,7'
          Dst:             http_request_set_method
        - Src:             'libfreerdp/core/gateway/rdg.c:698,52'
          Dst:             http_request_set_uri
        - Src:             'libfreerdp/core/gateway/rdg.c:703,8'
          Dst:             rdg_set_auth_header
        - Src:             'libfreerdp/core/gateway/rdg.c:709,8'
          Dst:             http_request_set_auth_scheme
        - Src:             'libfreerdp/core/gateway/rdg.c:711,8'
          Dst:             http_request_set_auth_param
        - Src:             'libfreerdp/core/gateway/rdg.c:715,7'
          Dst:             http_request_set_transfer_encoding
        - Src:             'libfreerdp/core/gateway/rdg.c:718,6'
          Dst:             http_request_write
        - Src:             'libfreerdp/core/gateway/rdg.c:720,2'
          Dst:             http_request_free
        - Src:             'libfreerdp/core/gateway/rdg.c:723,3'
          Dst:             Stream_SealLength
    - functionName:    rdg_get_gateway_credentials
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1212
      functionLinenumberEnd: 1231
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       23
      CyclomaticComplexity: 13
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_set_last_error_ex
        - utils_authenticate_gateway
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rdg.c:1216,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1215,19'
          Dst:             utils_authenticate_gateway
        - Src:             'libfreerdp/core/gateway/rdg.c:1222,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/rdg.c:1225,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    BIO_set_nonblock
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:80,9'
          Dst:             BIO_ctrl
    - functionName:    rdg_skip_seed_payload
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 774
      functionLinenumberEnd: 790
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - rdg_read_all
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:783,8'
          Dst:             rdg_read_all
    - functionName:    rdg_recv_auth_token
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 729
      functionLinenumberEnd: 770
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          143
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - credssp_auth_authenticate
        - credssp_auth_pkg_name
        - credssp_auth_take_input_buffer
        - crypto_base64_decode
        - http_response_get_auth_token
        - http_response_get_status_code
        - http_response_log_error_status_
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rdg.c:740,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:739,28'
          Dst:             http_response_get_status_code
        - Src:             'libfreerdp/core/gateway/rdg.c:747,4'
          Dst:             http_response_log_error_status_
        - Src:             'libfreerdp/core/gateway/rdg.c:751,63'
          Dst:             credssp_auth_pkg_name
        - Src:             'libfreerdp/core/gateway/rdg.c:751,24'
          Dst:             http_response_get_auth_token
        - Src:             'libfreerdp/core/gateway/rdg.c:755,8'
          Dst:             strlen
        - Src:             'libfreerdp/core/gateway/rdg.c:757,2'
          Dst:             crypto_base64_decode
        - Src:             'libfreerdp/core/gateway/rdg.c:763,3'
          Dst:             credssp_auth_take_input_buffer
        - Src:             'libfreerdp/core/gateway/rdg.c:768,7'
          Dst:             credssp_auth_authenticate
    - functionName:    rdg_send_http_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1302
      functionLinenumberEnd: 1314
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Buffer
        - Stream_Free
        - Stream_Length
        - freerdp_tls_write_all
        - rdg_build_http_request
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1304,15'
          Dst:             rdg_build_http_request
        - Src:             'libfreerdp/core/gateway/rdg.c:1309,20'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rdg.c:1310,38'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/rdg.c:1310,11'
          Dst:             freerdp_tls_write_all
        - Src:             'libfreerdp/core/gateway/rdg.c:1312,2'
          Dst:             Stream_Free
    - functionName:    rdg_auth_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1234
      functionLinenumberEnd: 1298
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          241
      EdgeCount:       51
      CyclomaticComplexity: 16
      functionsReached:
        - credssp_auth_authenticate
        - credssp_auth_init
        - credssp_auth_new
        - credssp_auth_set_flags
        - credssp_auth_setup_client
        - freerdp_settings_get_bool
        - identity_set_from_settings
        - identity_set_from_smartcard_hash
        - rdg_get_gateway_credentials
        - smartcard_getCert
        - sspi_FreeAuthIdentity
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1240,14'
          Dst:             credssp_auth_new
        - Src:             'libfreerdp/core/gateway/rdg.c:1244,7'
          Dst:             credssp_auth_init
        - Src:             'libfreerdp/core/gateway/rdg.c:1247,19'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/gateway/rdg.c:1250,8'
          Dst:             smartcard_getCert
        - Src:             'libfreerdp/core/gateway/rdg.c:1253,8'
          Dst:             rdg_get_gateway_credentials
        - Src:             'libfreerdp/core/gateway/rdg.c:1258,8'
          Dst:             rdg_get_gateway_credentials
        - Src:             'libfreerdp/core/gateway/rdg.c:1262,15'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/gateway/rdg.c:1263,21'
          Dst:             smartcard_getCert
        - Src:             'libfreerdp/core/gateway/rdg.c:1270,8'
          Dst:             identity_set_from_smartcard_hash
        - Src:             'libfreerdp/core/gateway/rdg.c:1278,8'
          Dst:             identity_set_from_settings
        - Src:             'libfreerdp/core/gateway/rdg.c:1286,7'
          Dst:             credssp_auth_setup_client
        - Src:             'libfreerdp/core/gateway/rdg.c:1289,3'
          Dst:             sspi_FreeAuthIdentity
        - Src:             'libfreerdp/core/gateway/rdg.c:1292,2'
          Dst:             sspi_FreeAuthIdentity
        - Src:             'libfreerdp/core/gateway/rdg.c:1294,2'
          Dst:             credssp_auth_set_flags
        - Src:             'libfreerdp/core/gateway/rdg.c:1296,7'
          Dst:             credssp_auth_authenticate
    - functionName:    rdg_tls_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1317
      functionLinenumberEnd: 1395
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         61
      ICount:          350
      EdgeCount:       77
      CyclomaticComplexity: 18
      functionsReached:
        - BIO_free_all
        - BIO_new
        - BIO_push
        - BIO_s_buffered_socket
        - BIO_s_transport_layer
        - BIO_set_data
        - BIO_set_nonblock
        - freerdp_get_last_error
        - freerdp_get_transport
        - freerdp_set_last_error_ex
        - freerdp_tls_connect
        - proxy_connect
        - proxy_prepare
        - transport_connect_layer
        - transport_layer_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1323,28'
          Dst:             freerdp_get_transport
        - Src:             'libfreerdp/core/gateway/rdg.c:1329,6'
          Dst:             proxy_prepare
        - Src:             'libfreerdp/core/gateway/rdg.c:1334,10'
          Dst:             transport_connect_layer
        - Src:             'libfreerdp/core/gateway/rdg.c:1342,21'
          Dst:             BIO_s_transport_layer
        - Src:             'libfreerdp/core/gateway/rdg.c:1342,13'
          Dst:             BIO_new
        - Src:             'libfreerdp/core/gateway/rdg.c:1345,3'
          Dst:             transport_layer_free
        - Src:             'libfreerdp/core/gateway/rdg.c:1348,2'
          Dst:             BIO_set_data
        - Src:             'libfreerdp/core/gateway/rdg.c:1350,24'
          Dst:             BIO_s_buffered_socket
        - Src:             'libfreerdp/core/gateway/rdg.c:1350,16'
          Dst:             BIO_new
        - Src:             'libfreerdp/core/gateway/rdg.c:1353,3'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/core/gateway/rdg.c:1357,16'
          Dst:             BIO_push
        - Src:             'libfreerdp/core/gateway/rdg.c:1358,11'
          Dst:             BIO_set_nonblock
        - Src:             'libfreerdp/core/gateway/rdg.c:1362,8'
          Dst:             proxy_connect
        - Src:             'libfreerdp/core/gateway/rdg.c:1365,4'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/core/gateway/rdg.c:1372,3'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/core/gateway/rdg.c:1377,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1377,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1379,11'
          Dst:             freerdp_tls_connect
        - Src:             'libfreerdp/core/gateway/rdg.c:1385,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/rdg.c:1385,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/rdg.c:1389,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/rdg.c:1389,4'
          Dst:             freerdp_set_last_error_ex
    - functionName:    rdg_get_front_bio_and_take_ownership
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2344
      functionLinenumberEnd: 2350
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rdg_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2322
      functionLinenumberEnd: 2341
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_free_all
        - DeleteCriticalSection
        - credssp_auth_free
        - freerdp_tls_free
        - http_context_free
        - smartcardCertInfo_Free
        - websocket_context_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:2326,2'
          Dst:             freerdp_tls_free
        - Src:             'libfreerdp/core/gateway/rdg.c:2327,2'
          Dst:             freerdp_tls_free
        - Src:             'libfreerdp/core/gateway/rdg.c:2328,2'
          Dst:             http_context_free
        - Src:             'libfreerdp/core/gateway/rdg.c:2329,2'
          Dst:             credssp_auth_free
        - Src:             'libfreerdp/core/gateway/rdg.c:2332,3'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/core/gateway/rdg.c:2334,2'
          Dst:             DeleteCriticalSection
        - Src:             'libfreerdp/core/gateway/rdg.c:2336,2'
          Dst:             smartcardCertInfo_Free
        - Src:             'libfreerdp/core/gateway/rdg.c:2338,2'
          Dst:             websocket_context_free
    - functionName:    BIO_s_rdg
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2201
      functionLinenumberEnd: 2219
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_meth_new
        - BIO_meth_set_create
        - BIO_meth_set_ctrl
        - BIO_meth_set_destroy
        - BIO_meth_set_gets
        - BIO_meth_set_puts
        - BIO_meth_set_read
        - BIO_meth_set_write
        - rdg_bio_ctrl
        - rdg_bio_free
        - rdg_bio_gets
        - rdg_bio_new
        - rdg_bio_puts
        - rdg_bio_read
        - rdg_bio_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:2206,23'
          Dst:             BIO_meth_new
        - Src:             'libfreerdp/core/gateway/rdg.c:2209,3'
          Dst:             BIO_meth_set_write
        - Src:             'libfreerdp/core/gateway/rdg.c:2209,3'
          Dst:             rdg_bio_write
        - Src:             'libfreerdp/core/gateway/rdg.c:2210,3'
          Dst:             BIO_meth_set_read
        - Src:             'libfreerdp/core/gateway/rdg.c:2210,3'
          Dst:             rdg_bio_read
        - Src:             'libfreerdp/core/gateway/rdg.c:2211,3'
          Dst:             BIO_meth_set_puts
        - Src:             'libfreerdp/core/gateway/rdg.c:2211,3'
          Dst:             rdg_bio_puts
        - Src:             'libfreerdp/core/gateway/rdg.c:2212,3'
          Dst:             BIO_meth_set_gets
        - Src:             'libfreerdp/core/gateway/rdg.c:2212,3'
          Dst:             rdg_bio_gets
        - Src:             'libfreerdp/core/gateway/rdg.c:2213,3'
          Dst:             BIO_meth_set_ctrl
        - Src:             'libfreerdp/core/gateway/rdg.c:2213,3'
          Dst:             rdg_bio_ctrl
        - Src:             'libfreerdp/core/gateway/rdg.c:2214,3'
          Dst:             BIO_meth_set_create
        - Src:             'libfreerdp/core/gateway/rdg.c:2214,3'
          Dst:             rdg_bio_new
        - Src:             'libfreerdp/core/gateway/rdg.c:2215,3'
          Dst:             BIO_meth_set_destroy
        - Src:             'libfreerdp/core/gateway/rdg.c:2215,3'
          Dst:             rdg_bio_free
    - functionName:    rdg_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2222
      functionLinenumberEnd: 2319
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         63
      ICount:          396
      EdgeCount:       85
      CyclomaticComplexity: 24
      functionsReached:
        - BIO_new
        - BIO_s_rdg
        - BIO_set_data
        - InitializeCriticalSection
        - UuidFromStringA
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - calloc
        - freerdp_settings_get_bool
        - freerdp_tls_new
        - http_context_enable_websocket_upgrade
        - http_context_new
        - http_context_set_accept
        - http_context_set_cache_control
        - http_context_set_connection
        - http_context_set_host
        - http_context_set_pragma
        - http_context_set_rdg_auth_scheme
        - http_context_set_rdg_connection_id
        - http_context_set_rdg_correlation_id
        - http_context_set_uri
        - http_context_set_user_agent
        - rdg_free
        - websocket_context_new
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rdg.c:2277,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:2226,25'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/rdg.c:2230,13'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/gateway/rdg.c:2240,16'
          Dst:             freerdp_tls_new
        - Src:             'libfreerdp/core/gateway/rdg.c:2245,15'
          Dst:             freerdp_tls_new
        - Src:             'libfreerdp/core/gateway/rdg.c:2250,14'
          Dst:             http_context_new
        - Src:             'libfreerdp/core/gateway/rdg.c:2256,6'
          Dst:             UuidFromStringA
        - Src:             'libfreerdp/core/gateway/rdg.c:2259,7'
          Dst:             http_context_set_uri
        - Src:             'libfreerdp/core/gateway/rdg.c:2260,7'
          Dst:             http_context_set_accept
        - Src:             'libfreerdp/core/gateway/rdg.c:2261,7'
          Dst:             http_context_set_cache_control
        - Src:             'libfreerdp/core/gateway/rdg.c:2262,7'
          Dst:             http_context_set_pragma
        - Src:             'libfreerdp/core/gateway/rdg.c:2263,7'
          Dst:             http_context_set_connection
        - Src:             'libfreerdp/core/gateway/rdg.c:2264,7'
          Dst:             http_context_set_user_agent
        - Src:             'libfreerdp/core/gateway/rdg.c:2265,7'
          Dst:             http_context_set_host
        - Src:             'libfreerdp/core/gateway/rdg.c:2266,7'
          Dst:             http_context_set_rdg_connection_id
        - Src:             'libfreerdp/core/gateway/rdg.c:2267,7'
          Dst:             http_context_set_rdg_correlation_id
        - Src:             'libfreerdp/core/gateway/rdg.c:2270,10'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/gateway/rdg.c:2268,7'
          Dst:             http_context_enable_websocket_upgrade
        - Src:             'libfreerdp/core/gateway/rdg.c:2280,10'
          Dst:             http_context_set_rdg_auth_scheme
        - Src:             'libfreerdp/core/gateway/rdg.c:2286,10'
          Dst:             http_context_set_rdg_auth_scheme
        - Src:             'libfreerdp/core/gateway/rdg.c:2292,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:2292,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:2297,26'
          Dst:             BIO_s_rdg
        - Src:             'libfreerdp/core/gateway/rdg.c:2297,18'
          Dst:             BIO_new
        - Src:             'libfreerdp/core/gateway/rdg.c:2302,2'
          Dst:             BIO_set_data
        - Src:             'libfreerdp/core/gateway/rdg.c:2303,2'
          Dst:             InitializeCriticalSection
        - Src:             'libfreerdp/core/gateway/rdg.c:2308,44'
          Dst:             websocket_context_new
        - Src:             'libfreerdp/core/gateway/rdg.c:2316,2'
          Dst:             rdg_free
    - functionName:    rdg_tunnel_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1593
      functionLinenumberEnd: 1620
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          116
      EdgeCount:       33
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Free
        - rdg_process_packet
        - rdg_receive_packet
        - rdg_send_handshake
        - transport_set_layer
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1596,2'
          Dst:             rdg_send_handshake
        - Src:             'libfreerdp/core/gateway/rdg.c:1601,7'
          Dst:             rdg_receive_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:1605,13'
          Dst:             rdg_process_packet
        - Src:             'libfreerdp/core/gateway/rdg.c:1606,4'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/gateway/rdg.c:1611,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1612,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1613,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1614,4'
          Dst:             transport_set_layer
    - functionName:    BIO_get_socket
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:65,9'
          Dst:             BIO_ctrl
    - functionName:    rdg_establish_data_connection
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1400
      functionLinenumberEnd: 1590
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         119
      ICount:          684
      EdgeCount:       148
      CyclomaticComplexity: 31
      functionsReached:
        - BIO_ctrl
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - closesocket
        - credssp_auth_free
        - credssp_auth_have_output_token
        - credssp_auth_is_complete
        - freerdp_http_status_string_format
        - freerdp_set_last_error_ex
        - http_context_enable_websocket_upgrade
        - http_context_is_websocket_upgrade_enabled
        - http_response_extract_cookies
        - http_response_free
        - http_response_get_body_length
        - http_response_get_status_code
        - http_response_get_transfer_encoding
        - http_response_is_websocket
        - http_response_log_error_status_
        - http_response_recv
        - rdg_auth_init
        - rdg_establish_data_connection
        - rdg_recv_auth_token
        - rdg_send_http_request
        - rdg_skip_seed_payload
        - rdg_tls_connect
        - strcmp
        - websocket_context_reset
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rdg.c:1431,3'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/gateway/rdg.c:1511,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1404,7'
          Dst:             rdg_tls_connect
        - Src:             'libfreerdp/core/gateway/rdg.c:1407,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1412,8'
          Dst:             rdg_auth_init
        - Src:             'libfreerdp/core/gateway/rdg.c:1415,8'
          Dst:             rdg_send_http_request
        - Src:             'libfreerdp/core/gateway/rdg.c:1418,14'
          Dst:             http_response_recv
        - Src:             'libfreerdp/core/gateway/rdg.c:1423,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1423,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1428,9'
          Dst:             http_response_extract_cookies
        - Src:             'libfreerdp/core/gateway/rdg.c:1430,29'
          Dst:             http_response_get_status_code
        - Src:             'libfreerdp/core/gateway/rdg.c:1437,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1437,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1438,5'
          Dst:             http_response_log_error_status_
        - Src:             'libfreerdp/core/gateway/rdg.c:1441,5'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rdg.c:1448,5'
          Dst:             http_response_log_error_status_
        - Src:             'libfreerdp/core/gateway/rdg.c:1452,5'
          Dst:             http_response_log_error_status_
        - Src:             'libfreerdp/core/gateway/rdg.c:1456,11'
          Dst:             credssp_auth_is_complete
        - Src:             'libfreerdp/core/gateway/rdg.c:1458,9'
          Dst:             rdg_recv_auth_token
        - Src:             'libfreerdp/core/gateway/rdg.c:1460,5'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rdg.c:1464,8'
          Dst:             credssp_auth_have_output_token
        - Src:             'libfreerdp/core/gateway/rdg.c:1466,5'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rdg.c:1468,10'
          Dst:             rdg_send_http_request
        - Src:             'libfreerdp/core/gateway/rdg.c:1471,16'
          Dst:             http_response_recv
        - Src:             'libfreerdp/core/gateway/rdg.c:1474,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1474,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1478,11'
          Dst:             http_response_extract_cookies
        - Src:             'libfreerdp/core/gateway/rdg.c:1481,3'
          Dst:             credssp_auth_free
        - Src:             'libfreerdp/core/gateway/rdg.c:1486,3'
          Dst:             credssp_auth_free
        - Src:             'libfreerdp/core/gateway/rdg.c:1489,8'
          Dst:             rdg_send_http_request
        - Src:             'libfreerdp/core/gateway/rdg.c:1492,14'
          Dst:             http_response_recv
        - Src:             'libfreerdp/core/gateway/rdg.c:1496,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1496,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1500,9'
          Dst:             http_response_extract_cookies
        - Src:             'libfreerdp/core/gateway/rdg.c:1503,28'
          Dst:             http_response_get_status_code
        - Src:             'libfreerdp/core/gateway/rdg.c:1504,28'
          Dst:             http_response_get_body_length
        - Src:             'libfreerdp/core/gateway/rdg.c:1505,37'
          Dst:             http_response_get_transfer_encoding
        - Src:             'libfreerdp/core/gateway/rdg.c:1506,27'
          Dst:             http_response_is_websocket
        - Src:             'libfreerdp/core/gateway/rdg.c:1508,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1508,2'
          Dst:             freerdp_http_status_string_format
        - Src:             'libfreerdp/core/gateway/rdg.c:1508,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1516,4'
          Dst:             http_context_enable_websocket_upgrade
        - Src:             'libfreerdp/core/gateway/rdg.c:1517,4'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rdg.c:1520,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/rdg.c:1521,4'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rdg.c:1524,4'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rdg.c:1531,9'
          Dst:             http_context_is_websocket_upgrade_enabled
        - Src:             'libfreerdp/core/gateway/rdg.c:1533,16'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/core/gateway/rdg.c:1535,7'
          Dst:             closesocket
        - Src:             'libfreerdp/core/gateway/rdg.c:1536,6'
          Dst:             http_context_enable_websocket_upgrade
        - Src:             'libfreerdp/core/gateway/rdg.c:1537,13'
          Dst:             rdg_establish_data_connection
        - Src:             'libfreerdp/core/gateway/rdg.c:1544,9'
          Dst:             websocket_context_reset
        - Src:             'libfreerdp/core/gateway/rdg.c:1551,10'
          Dst:             rdg_auth_init
        - Src:             'libfreerdp/core/gateway/rdg.c:1556,4'
          Dst:             http_response_log_error_status_
        - Src:             'libfreerdp/core/gateway/rdg.c:1557,4'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rdg.c:1561,6'
          Dst:             strcmp
        - Src:             'libfreerdp/core/gateway/rdg.c:1570,8'
          Dst:             rdg_skip_seed_payload
        - Src:             'libfreerdp/core/gateway/rdg.c:1577,8'
          Dst:             rdg_send_http_request
        - Src:             'libfreerdp/core/gateway/rdg.c:1584,9'
          Dst:             rdg_auth_init
    - functionName:    rdg_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1623
      functionLinenumberEnd: 1675
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          218
      EdgeCount:       55
      CyclomaticComplexity: 8
      functionsReached:
        - BIO_get_socket
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - credssp_auth_free
        - freerdp_set_last_error_ex
        - freerdp_tcp_get_peer_address
        - http_context_enable_websocket_upgrade
        - rdg_establish_data_connection
        - rdg_tunnel_connect
        - transport_set_layer
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1629,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1630,2'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/rdg.c:1631,11'
          Dst:             rdg_establish_data_connection
        - Src:             'libfreerdp/core/gateway/rdg.c:1638,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rdg.c:1638,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rdg.c:1645,4'
          Dst:             BIO_get_socket
        - Src:             'libfreerdp/core/gateway/rdg.c:1646,18'
          Dst:             freerdp_tcp_get_peer_address
        - Src:             'libfreerdp/core/gateway/rdg.c:1647,13'
          Dst:             rdg_establish_data_connection
        - Src:             'libfreerdp/core/gateway/rdg.c:1658,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1659,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1660,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1663,4'
          Dst:             http_context_enable_websocket_upgrade
        - Src:             'libfreerdp/core/gateway/rdg.c:1664,4'
          Dst:             credssp_auth_free
        - Src:             'libfreerdp/core/gateway/rdg.c:1668,3'
          Dst:             transport_set_layer
        - Src:             'libfreerdp/core/gateway/rdg.c:1672,11'
          Dst:             rdg_tunnel_connect
    - functionName:    BIO_get_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:70,9'
          Dst:             BIO_ctrl
    - functionName:    rdg_get_event_handles
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rdg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1191
      functionLinenumberEnd: 1209
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          92
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - BIO_get_event
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rdg.c:1193,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rdg.c:1199,4'
          Dst:             BIO_get_event
    - functionName:    rpc_in_channel_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 591
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - rpc_channel_rpch_init
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:577,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:578,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:587,6'
          Dst:             rpc_channel_rpch_init
    - functionName:    rpc_channel_rpch_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          283
      EdgeCount:       75
      CyclomaticComplexity: 24
      functionsReached:
        - UuidCreate
        - credssp_auth_new
        - guid2str
        - http_context_append_pragma
        - http_context_new
        - http_context_set_accept
        - http_context_set_cache_control
        - http_context_set_connection
        - http_context_set_host
        - http_context_set_method
        - http_context_set_pragma
        - http_context_set_rdg_connection_id
        - http_context_set_rdg_correlation_id
        - http_context_set_uri
        - http_context_set_user_agent
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:524,18'
          Dst:             credssp_auth_new
        - Src:             'libfreerdp/core/gateway/rpc.c:525,6'
          Dst:             UuidCreate
        - Src:             'libfreerdp/core/gateway/rpc.c:532,18'
          Dst:             http_context_new
        - Src:             'libfreerdp/core/gateway/rpc.c:540,8'
          Dst:             http_context_set_pragma
        - Src:             'libfreerdp/core/gateway/rpc.c:547,47'
          Dst:             guid2str
        - Src:             'libfreerdp/core/gateway/rpc.c:546,20'
          Dst:             http_context_append_pragma
        - Src:             'libfreerdp/core/gateway/rpc.c:553,9'
          Dst:             http_context_append_pragma
        - Src:             'libfreerdp/core/gateway/rpc.c:557,8'
          Dst:             http_context_set_rdg_correlation_id
        - Src:             'libfreerdp/core/gateway/rpc.c:558,8'
          Dst:             http_context_set_rdg_connection_id
        - Src:             'libfreerdp/core/gateway/rpc.c:563,7'
          Dst:             http_context_set_method
        - Src:             'libfreerdp/core/gateway/rpc.c:564,7'
          Dst:             http_context_set_uri
        - Src:             'libfreerdp/core/gateway/rpc.c:565,7'
          Dst:             http_context_set_accept
        - Src:             'libfreerdp/core/gateway/rpc.c:566,7'
          Dst:             http_context_set_cache_control
        - Src:             'libfreerdp/core/gateway/rpc.c:567,7'
          Dst:             http_context_set_connection
        - Src:             'libfreerdp/core/gateway/rpc.c:568,7'
          Dst:             http_context_set_user_agent
        - Src:             'libfreerdp/core/gateway/rpc.c:569,7'
          Dst:             http_context_set_host
    - functionName:    rpc_in_channel_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 602
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
        - rpc_in_channel_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:595,43'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/rpc.c:599,3'
          Dst:             rpc_in_channel_init
    - functionName:    BIO_set_nonblock
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:80,9'
          Dst:             BIO_ctrl
    - functionName:    rpc_virtual_connection_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 667
      functionLinenumberEnd: 680
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          95
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - rpc_channel_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:672,3'
          Dst:             rpc_channel_free
        - Src:             'libfreerdp/core/gateway/rpc.c:674,3'
          Dst:             rpc_channel_free
        - Src:             'libfreerdp/core/gateway/rpc.c:676,3'
          Dst:             rpc_channel_free
        - Src:             'libfreerdp/core/gateway/rpc.c:678,3'
          Dst:             rpc_channel_free
    - functionName:    rpc_channel_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - credssp_auth_free
        - freerdp_tls_free
        - http_context_free
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:610,2'
          Dst:             credssp_auth_free
        - Src:             'libfreerdp/core/gateway/rpc.c:611,2'
          Dst:             http_context_free
        - Src:             'libfreerdp/core/gateway/rpc.c:612,2'
          Dst:             freerdp_tls_free
    - functionName:    rpc_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 974
      functionLinenumberEnd: 982
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - credssp_auth_free
        - rpc_client_free
        - rpc_virtual_connection_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:977,3'
          Dst:             rpc_client_free
        - Src:             'libfreerdp/core/gateway/rpc.c:978,3'
          Dst:             credssp_auth_free
        - Src:             'libfreerdp/core/gateway/rpc.c:979,3'
          Dst:             rpc_virtual_connection_free
    - functionName:    rpc_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 921
      functionLinenumberEnd: 971
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          157
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Get
        - calloc
        - credssp_auth_new
        - rpc_client_new
        - rpc_free
        - transport_get_context
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:922,24'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/gateway/rpc.c:925,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:927,17'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/rpc.c:932,13'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/gateway/rpc.c:936,14'
          Dst:             credssp_auth_new
        - Src:             'libfreerdp/core/gateway/rpc.c:959,16'
          Dst:             rpc_client_new
        - Src:             'libfreerdp/core/gateway/rpc.c:968,2'
          Dst:             rpc_free
    - functionName:    rpc_out_channel_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 833
      functionLinenumberEnd: 862
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          130
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rpc_channel_tls_connect
        - rpc_ncacn_http_auth_init
        - rpc_ncacn_http_send_out_channel_request
        - rpc_out_channel_transition_to_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:843,7'
          Dst:             rpc_channel_tls_connect
        - Src:             'libfreerdp/core/gateway/rpc.c:846,2'
          Dst:             rpc_out_channel_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc.c:848,7'
          Dst:             rpc_ncacn_http_auth_init
        - Src:             'libfreerdp/core/gateway/rpc.c:853,7'
          Dst:             rpc_ncacn_http_send_out_channel_request
        - Src:             'libfreerdp/core/gateway/rpc.c:855,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:855,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:860,2'
          Dst:             rpc_out_channel_transition_to_state
    - functionName:    rpc_channel_tls_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 715
      functionLinenumberEnd: 796
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         85
      ICount:          408
      EdgeCount:       104
      CyclomaticComplexity: 21
      functionsReached:
        - BIO_free_all
        - BIO_new
        - BIO_push
        - BIO_s_buffered_socket
        - BIO_s_transport_layer
        - BIO_set_data
        - BIO_set_nonblock
        - freerdp_get_last_error
        - freerdp_get_transport
        - freerdp_set_last_error_ex
        - freerdp_settings_get_string
        - freerdp_tls_connect
        - freerdp_tls_new
        - proxy_connect
        - transport_connect_layer
        - transport_layer_free
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:721,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:724,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:726,30'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/rpc.c:727,30'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/rpc.c:729,28'
          Dst:             freerdp_get_transport
        - Src:             'libfreerdp/core/gateway/rpc.c:731,6'
          Dst:             transport_connect_layer
        - Src:             'libfreerdp/core/gateway/rpc.c:736,26'
          Dst:             BIO_s_transport_layer
        - Src:             'libfreerdp/core/gateway/rpc.c:736,18'
          Dst:             BIO_new
        - Src:             'libfreerdp/core/gateway/rpc.c:739,3'
          Dst:             transport_layer_free
        - Src:             'libfreerdp/core/gateway/rpc.c:742,2'
          Dst:             BIO_set_data
        - Src:             'libfreerdp/core/gateway/rpc.c:744,29'
          Dst:             BIO_s_buffered_socket
        - Src:             'libfreerdp/core/gateway/rpc.c:744,21'
          Dst:             BIO_new
        - Src:             'libfreerdp/core/gateway/rpc.c:747,3'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/core/gateway/rpc.c:751,16'
          Dst:             BIO_push
        - Src:             'libfreerdp/core/gateway/rpc.c:753,7'
          Dst:             BIO_set_nonblock
        - Src:             'libfreerdp/core/gateway/rpc.c:755,3'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/core/gateway/rpc.c:761,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:762,8'
          Dst:             proxy_connect
        - Src:             'libfreerdp/core/gateway/rpc.c:765,4'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/core/gateway/rpc.c:771,31'
          Dst:             freerdp_tls_new
        - Src:             'libfreerdp/core/gateway/rpc.c:777,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:777,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:779,18'
          Dst:             freerdp_tls_connect
        - Src:             'libfreerdp/core/gateway/rpc.c:785,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/rpc.c:785,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/rpc.c:789,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/rpc.c:789,4'
          Dst:             freerdp_set_last_error_ex
    - functionName:    rpc_out_channel_transition_to_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 622
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          65
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - client_out_state_str
        - winpr_int_assert
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:618,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:621,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:621,2'
          Dst:             client_out_state_str
        - Src:             'libfreerdp/core/gateway/rpc.c:621,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    client_out_state_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          67
      EdgeCount:       24
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rpc.c:111,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    rpc_in_channel_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 799
      functionLinenumberEnd: 830
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          138
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rpc_channel_tls_connect
        - rpc_in_channel_transition_to_state
        - rpc_ncacn_http_auth_init
        - rpc_ncacn_http_send_in_channel_request
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:809,7'
          Dst:             rpc_channel_tls_connect
        - Src:             'libfreerdp/core/gateway/rpc.c:812,2'
          Dst:             rpc_in_channel_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc.c:814,7'
          Dst:             rpc_ncacn_http_auth_init
        - Src:             'libfreerdp/core/gateway/rpc.c:819,7'
          Dst:             rpc_ncacn_http_send_in_channel_request
        - Src:             'libfreerdp/core/gateway/rpc.c:821,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:821,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:826,7'
          Dst:             rpc_in_channel_transition_to_state
    - functionName:    rpc_in_channel_transition_to_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          65
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - client_in_state_str
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:507,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:509,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:509,2'
          Dst:             client_in_state_str
        - Src:             'libfreerdp/core/gateway/rpc.c:509,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    client_in_state_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 103
      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:   'libfreerdp/core/gateway/rpc.c:71,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    rpc_virtual_connection_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 683
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          103
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - UuidCreate
        - calloc
        - rpc_in_channel_new
        - rpc_out_channel_new
        - rpc_virtual_connection_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:684,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:687,29'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/rpc.c:692,6'
          Dst:             UuidCreate
        - Src:             'libfreerdp/core/gateway/rpc.c:694,6'
          Dst:             UuidCreate
        - Src:             'libfreerdp/core/gateway/rpc.c:698,33'
          Dst:             rpc_in_channel_new
        - Src:             'libfreerdp/core/gateway/rpc.c:703,34'
          Dst:             rpc_out_channel_new
        - Src:             'libfreerdp/core/gateway/rpc.c:710,2'
          Dst:             rpc_virtual_connection_free
    - functionName:    rpc_out_channel_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 653
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
        - rpc_out_channel_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:646,46'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/rpc.c:650,3'
          Dst:             rpc_out_channel_init
    - functionName:    rpc_out_channel_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 642
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          98
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - rpc_channel_rpch_init
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:627,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:628,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:638,6'
          Dst:             rpc_channel_rpch_init
    - functionName:    rpc_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 897
      functionLinenumberEnd: 918
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          80
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - rpc_in_channel_connect
        - rpc_out_channel_connect
        - rpc_virtual_connection_new
        - rpc_virtual_connection_transition_to_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:901,27'
          Dst:             rpc_virtual_connection_new
        - Src:             'libfreerdp/core/gateway/rpc.c:909,2'
          Dst:             rpc_virtual_connection_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc.c:911,6'
          Dst:             rpc_in_channel_connect
        - Src:             'libfreerdp/core/gateway/rpc.c:914,6'
          Dst:             rpc_out_channel_connect
    - functionName:    rpc_virtual_connection_transition_to_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 658
      functionLinenumberEnd: 663
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          73
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rpc_vc_state_str
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:659,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:660,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:662,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:662,2'
          Dst:             rpc_vc_state_str
        - Src:             'libfreerdp/core/gateway/rpc.c:662,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rpc_vc_state_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       16
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rpc.c:163,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    rpc_out_channel_replacement_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 865
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          129
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rpc_channel_tls_connect
        - rpc_ncacn_http_auth_init
        - rpc_ncacn_http_send_out_channel_request
        - rpc_out_channel_transition_to_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:875,7'
          Dst:             rpc_channel_tls_connect
        - Src:             'libfreerdp/core/gateway/rpc.c:878,2'
          Dst:             rpc_out_channel_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc.c:880,7'
          Dst:             rpc_ncacn_http_auth_init
        - Src:             'libfreerdp/core/gateway/rpc.c:885,7'
          Dst:             rpc_ncacn_http_send_out_channel_request
        - Src:             'libfreerdp/core/gateway/rpc.c:887,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:887,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:892,2'
          Dst:             rpc_out_channel_transition_to_state
    - functionName:    rpc_channel_write_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 502
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          86
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_tls_write_all
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:493,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:496,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:498,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:502,9'
          Dst:             freerdp_tls_write_all
    - 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_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    rpc_channel_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          122
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - BIO_read
        - BIO_test_flags
        - ERR_clear_error
        - Stream_EnsureRemainingCapacity
        - Stream_Pointer
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:470,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rpc.c:473,2'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/gateway/rpc.c:474,39'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gateway/rpc.c:474,11'
          Dst:             BIO_read
        - Src:             'libfreerdp/core/gateway/rpc.c:478,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/gateway/rpc.c:482,6'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/gateway/rpc.c:485,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:485,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rpc_get_stub_data_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         61
      ICount:          286
      EdgeCount:       67
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rpc_offset_align
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rpc.c:398,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:391,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:392,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:393,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:394,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:402,4'
          Dst:             rpc_offset_align
        - Src:             'libfreerdp/core/gateway/rpc.c:408,4'
          Dst:             rpc_offset_align
        - Src:             'libfreerdp/core/gateway/rpc.c:417,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:417,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:451,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:451,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    rpc_offset_align
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rpc_offset_pad
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rpc_pdu_header_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:278,2'
          Dst:             winpr_int_assert
    - functionName:    rpc_pdu_header_print
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         183
      ICount:          640
      EdgeCount:       213
      CyclomaticComplexity: 32
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc.c:223,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc.c:225,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:225,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:226,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:226,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:229,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:229,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:231,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:231,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:234,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:234,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:237,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:237,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:240,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:240,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:243,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:243,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:246,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:246,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:249,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:249,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:252,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:252,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:255,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:255,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:257,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:257,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:258,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:258,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:262,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:262,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:263,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:263,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:264,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:264,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:268,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:268,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:269,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:269,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:270,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:270,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc.c:271,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc.c:271,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    rpc_bind_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_bind.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          57
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - credssp_auth_have_output_token
        - credssp_auth_is_complete
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:465,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:467,13'
          Dst:             credssp_auth_is_complete
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:468,15'
          Dst:             credssp_auth_have_output_token
    - functionName:    rpc_send_rpc_auth_3_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_bind.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          263
      EdgeCount:       48
      CyclomaticComplexity: 6
      functionsReached:
        - ArrayList_Append
        - Stream_Buffer
        - Stream_Free
        - Stream_Length
        - Stream_New
        - Stream_SealLength
        - WLog_Print_dbg_tag
        - credssp_auth_get_output_buffer
        - credssp_auth_pkg_name
        - rpc_auth_pkg_to_security_provider
        - rpc_client_call_new
        - rpc_in_channel_send_pdu
        - rpc_offset_align
        - rpc_pdu_header_init
        - rts_write_pdu_auth3
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:402,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:405,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:408,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:410,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:412,12'
          Dst:             credssp_auth_get_output_buffer
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:417,22'
          Dst:             rpc_pdu_header_init
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:427,23'
          Dst:             rpc_offset_align
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:428,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:431,40'
          Dst:             credssp_auth_pkg_name
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:431,6'
          Dst:             rpc_auth_pkg_to_security_provider
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:437,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:440,11'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:445,7'
          Dst:             rts_write_pdu_auth3
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:448,15'
          Dst:             rpc_client_call_new
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:450,6'
          Dst:             ArrayList_Append
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:452,3'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:453,47'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:453,70'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:453,12'
          Dst:             rpc_in_channel_send_pdu
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:457,2'
          Dst:             Stream_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:    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:    rpc_auth_pkg_to_security_provider
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_bind.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:476,6'
          Dst:             strcmp
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:478,11'
          Dst:             strcmp
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:480,11'
          Dst:             strcmp
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:482,11'
          Dst:             strcmp
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:1325,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    rpc_recv_bind_ack_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_bind.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          207
      EdgeCount:       44
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_ConstPointer
        - Stream_GetPosition
        - Stream_SetPosition
        - WLog_Print_dbg_tag
        - credssp_auth_authenticate
        - credssp_auth_take_input_buffer
        - rts_free_pdu_header
        - rts_read_pdu_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:334,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:335,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:336,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:338,8'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:339,7'
          Dst:             rts_read_pdu_header
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:342,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:349,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:361,8'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:362,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:364,14'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:365,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:373,2'
          Dst:             credssp_auth_take_input_buffer
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:375,6'
          Dst:             credssp_auth_authenticate
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:380,2'
          Dst:             rts_free_pdu_header
    - functionName:    rpc_bind_setup
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_bind.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         50
      ICount:          222
      EdgeCount:       55
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - credssp_auth_authenticate
        - credssp_auth_free
        - credssp_auth_init
        - credssp_auth_new
        - credssp_auth_set_flags
        - credssp_auth_setup_client
        - freerdp_set_last_error_ex
        - freerdp_settings_get_string
        - identity_set_from_settings
        - sspi_FreeAuthIdentity
        - transport_get_context
        - utils_authenticate_gateway
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rpc_bind.c:133,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:116,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:118,24'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:119,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:122,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:125,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:127,2'
          Dst:             credssp_auth_free
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:128,14'
          Dst:             credssp_auth_new
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:132,19'
          Dst:             utils_authenticate_gateway
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:139,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:142,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:149,7'
          Dst:             credssp_auth_init
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:152,7'
          Dst:             identity_set_from_settings
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:156,32'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:157,32'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:160,7'
          Dst:             credssp_auth_setup_client
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:162,3'
          Dst:             sspi_FreeAuthIdentity
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:165,2'
          Dst:             sspi_FreeAuthIdentity
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:167,2'
          Dst:             credssp_auth_set_flags
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:170,6'
          Dst:             credssp_auth_authenticate
    - functionName:    rpc_send_bind_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_bind.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          428
      EdgeCount:       58
      CyclomaticComplexity: 13
      functionsReached:
        - ArrayList_Append
        - Stream_Buffer
        - Stream_Free
        - Stream_Length
        - Stream_New
        - Stream_SealLength
        - WLog_Print_dbg_tag
        - calloc
        - credssp_auth_get_output_buffer
        - credssp_auth_pkg_name
        - rpc_auth_pkg_to_security_provider
        - rpc_bind_setup
        - rpc_client_call_free
        - rpc_client_call_new
        - rpc_in_channel_send_pdu
        - rpc_pdu_header_init
        - rts_write_pdu_bind
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:188,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:192,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:196,17'
          Dst:             rpc_bind_setup
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:199,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:201,12'
          Dst:             credssp_auth_get_output_buffer
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:206,20'
          Dst:             rpc_pdu_header_init
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:220,6'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:254,40'
          Dst:             credssp_auth_pkg_name
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:254,6'
          Dst:             rpc_auth_pkg_to_security_provider
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:260,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:263,11'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:268,7'
          Dst:             rts_write_pdu_bind
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:271,15'
          Dst:             rpc_client_call_new
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:276,7'
          Dst:             ArrayList_Append
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:278,3'
          Dst:             rpc_client_call_free
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:282,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:283,46'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:283,69'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:283,11'
          Dst:             rpc_in_channel_send_pdu
        - Src:             'libfreerdp/core/gateway/rpc_bind.c:295,2'
          Dst:             Stream_Free
    - functionName:    rpc_client_transition_to_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - rpc_client_state_str
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:189,2'
          Dst:             rpc_client_state_str
        - Src:             'libfreerdp/core/gateway/rpc_client.c:189,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rpc_client_state_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       20
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rpc_client.c:52,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:    17
      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:    rpc_client_recv_pdu_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         155
      ICount:          637
      EdgeCount:       182
      CyclomaticComplexity: 29
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - memcmp
        - rpc_bind_state
        - rpc_client_state_str
        - rpc_client_transition_to_state
        - rpc_recv_bind_ack_pdu
        - rpc_send_bind_pdu
        - rpc_send_rpc_auth_3_pdu
        - rpc_vc_state_str
        - rpc_virtual_connection_transition_to_state
        - rts_match_pdu_signature_ex
        - rts_print_pdu_signature
        - rts_recv_CONN_A3_pdu
        - rts_recv_CONN_C2_pdu
        - rts_recv_ping_pdu
        - transport_get_tsg
        - tsg_proxy_begin
        - tsg_recv_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rpc_client.c:214,3'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/gateway/rpc_client.c:299,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:198,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_client.c:199,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_client.c:201,16'
          Dst:             transport_get_tsg
        - Src:             'libfreerdp/core/gateway/rpc_client.c:203,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc_client.c:203,2'
          Dst:             rpc_client_state_str
        - Src:             'libfreerdp/core/gateway/rpc_client.c:203,2'
          Dst:             rpc_vc_state_str
        - Src:             'libfreerdp/core/gateway/rpc_client.c:203,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc_client.c:207,6'
          Dst:             rts_match_pdu_signature_ex
        - Src:             'libfreerdp/core/gateway/rpc_client.c:208,2'
          Dst:             rts_print_pdu_signature
        - Src:             'libfreerdp/core/gateway/rpc_client.c:210,10'
          Dst:             rts_recv_ping_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:223,9'
          Dst:             memcmp
        - Src:             'libfreerdp/core/gateway/rpc_client.c:225,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc_client.c:225,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc_client.c:226,6'
          Dst:             rts_print_pdu_signature
        - Src:             'libfreerdp/core/gateway/rpc_client.c:230,10'
          Dst:             rts_recv_CONN_A3_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:232,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc_client.c:232,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc_client.c:236,5'
          Dst:             rpc_virtual_connection_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:242,9'
          Dst:             memcmp
        - Src:             'libfreerdp/core/gateway/rpc_client.c:244,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc_client.c:244,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc_client.c:245,6'
          Dst:             rts_print_pdu_signature
        - Src:             'libfreerdp/core/gateway/rpc_client.c:249,10'
          Dst:             rts_recv_CONN_C2_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:251,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc_client.c:251,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc_client.c:255,5'
          Dst:             rpc_virtual_connection_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:257,5'
          Dst:             rpc_client_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:259,9'
          Dst:             rpc_send_bind_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:261,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc_client.c:261,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc_client.c:265,5'
          Dst:             rpc_client_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:284,10'
          Dst:             rpc_recv_bind_ack_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:286,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc_client.c:286,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc_client.c:292,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc_client.c:292,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc_client.c:299,12'
          Dst:             rpc_bind_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:302,10'
          Dst:             rpc_send_bind_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:304,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc_client.c:304,7'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc_client.c:309,10'
          Dst:             rpc_send_rpc_auth_3_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:311,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc_client.c:311,7'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc_client.c:318,6'
          Dst:             rpc_client_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:320,11'
          Dst:             tsg_proxy_begin
        - Src:             'libfreerdp/core/gateway/rpc_client.c:322,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc_client.c:322,7'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc_client.c:334,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc_client.c:334,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc_client.c:339,8'
          Dst:             tsg_recv_pdu
    - 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:    2
      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_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:    rpc_client_receive_pipe_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          85
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - SetEvent
        - ringbuffer_used
        - ringbuffer_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:141,2'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/gateway/rpc_client.c:143,6'
          Dst:             ringbuffer_write
        - Src:             'libfreerdp/core/gateway/rpc_client.c:146,6'
          Dst:             ringbuffer_used
        - Src:             'libfreerdp/core/gateway/rpc_client.c:147,9'
          Dst:             SetEvent
        - Src:             'libfreerdp/core/gateway/rpc_client.c:149,2'
          Dst:             LeaveCriticalSection
    - functionName:    rpc_pdu_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_ResetPosition
        - Stream_SetLength
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:94,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_client.c:98,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:99,9'
          Dst:             Stream_SetLength
    - functionName:    Stream_ResetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1358,3'
          Dst:             winpr_int_assert
    - functionName:    rpc_client_recv_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          139
      EdgeCount:       39
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_ResetPosition
        - Stream_SealLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rpc_client_recv_pdu_int
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:350,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_client.c:351,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_client.c:353,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/rpc_client.c:354,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:356,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gateway/rpc_client.c:357,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc_client.c:357,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rpc_client.c:358,17'
          Dst:             rpc_client_recv_pdu_int
        - Src:             'libfreerdp/core/gateway/rpc_client.c:361,23'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gateway/rpc_client.c:365,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rpc_client.c:365,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,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:    PubSub_OnTerminate
      functionSourceFile: '/src/FreeRDP/include/freerdp/event.h'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - PubSub_OnEvent
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/event.h:82,2'
          Dst:             winpr_int_assert
        - Src:             'include/freerdp/event.h:82,2'
          Dst:             PubSub_OnEvent
    - 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:    1
      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:    rpc_client_recv_fragment
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         119
      ICount:          725
      EdgeCount:       155
      CyclomaticComplexity: 38
      functionsReached:
        - PubSub_OnTerminate
        - Stream_Buffer
        - Stream_ConstPointer
        - Stream_EnsureCapacity
        - Stream_EnsureRemainingCapacity
        - Stream_Length
        - Stream_ResetPosition
        - Stream_SealLength
        - Stream_SetPosition
        - Stream_Write
        - WLog_Print_dbg_tag
        - rpc_client_call_find_by_id
        - rpc_client_receive_pipe_write
        - rpc_client_recv_pdu
        - rpc_get_stub_data_info
        - rpc_pdu_reset
        - rpc_recv_fault_pdu
        - rts_free_pdu_header
        - rts_read_pdu_header
        - rts_recv_out_of_sequence_pdu
        - rts_send_flow_control_ack_pdu
        - stream_read_u32_le
        - transport_get_context
        - transport_get_tsg
        - tsg_set_state
        - utils_abort_connect
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:380,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_client.c:381,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_client.c:382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_client.c:385,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_client.c:387,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/rpc_client.c:388,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:390,7'
          Dst:             rts_read_pdu_header
        - Src:             'libfreerdp/core/gateway/rpc_client.c:402,9'
          Dst:             rts_send_flow_control_ack_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:406,8'
          Dst:             rpc_get_stub_data_info
        - Src:             'libfreerdp/core/gateway/rpc_client.c:408,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:419,27'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/gateway/rpc_client.c:420,19'
          Dst:             transport_get_tsg
        - Src:             'libfreerdp/core/gateway/rpc_client.c:422,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_client.c:424,9'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rpc_client.c:426,10'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:428,5'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rpc_client.c:430,5'
          Dst:             utils_abort_connect
        - Src:             'libfreerdp/core/gateway/rpc_client.c:431,5'
          Dst:             tsg_set_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:434,10'
          Dst:             PubSub_OnTerminate
        - Src:             'libfreerdp/core/gateway/rpc_client.c:451,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:457,10'
          Dst:             rpc_client_call_find_by_id
        - Src:             'libfreerdp/core/gateway/rpc_client.c:466,9'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rpc_client.c:469,8'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rpc_client.c:472,9'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:475,25'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/gateway/rpc_client.c:475,4'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/rpc_client.c:484,9'
          Dst:             rpc_client_recv_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:486,10'
          Dst:             rpc_pdu_reset
        - Src:             'libfreerdp/core/gateway/rpc_client.c:495,8'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rpc_client.c:497,9'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:499,47'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/gateway/rpc_client.c:499,4'
          Dst:             rpc_client_receive_pipe_write
        - Src:             'libfreerdp/core/gateway/rpc_client.c:519,23'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rpc_client.c:520,9'
          Dst:             Stream_EnsureCapacity
        - Src:             'libfreerdp/core/gateway/rpc_client.c:523,25'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/rpc_client.c:523,4'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/rpc_client.c:525,8'
          Dst:             rpc_client_recv_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:528,9'
          Dst:             rpc_pdu_reset
        - Src:             'libfreerdp/core/gateway/rpc_client.c:533,9'
          Dst:             rts_recv_out_of_sequence_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:546,22'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rpc_client.c:547,8'
          Dst:             Stream_EnsureCapacity
        - Src:             'libfreerdp/core/gateway/rpc_client.c:550,24'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/rpc_client.c:550,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/rpc_client.c:552,7'
          Dst:             rpc_client_recv_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:555,8'
          Dst:             rpc_pdu_reset
        - Src:             'libfreerdp/core/gateway/rpc_client.c:562,3'
          Dst:             rpc_recv_fault_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:567,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:575,2'
          Dst:             rts_free_pdu_header
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1325,3'
          Dst:             winpr_int_assert
    - functionName:    rpc_client_call_find_by_id
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 949
      functionLinenumberEnd: 968
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - ArrayList_Count
        - ArrayList_GetItem
        - ArrayList_Lock
        - ArrayList_Unlock
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:955,2'
          Dst:             ArrayList_Lock
        - Src:             'libfreerdp/core/gateway/rpc_client.c:956,23'
          Dst:             ArrayList_Count
        - Src:             'libfreerdp/core/gateway/rpc_client.c:960,32'
          Dst:             ArrayList_GetItem
        - Src:             'libfreerdp/core/gateway/rpc_client.c:966,2'
          Dst:             ArrayList_Unlock
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    rpc_pdu_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:107,2'
          Dst:             Stream_Free
    - functionName:    rpc_client_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1256
      functionLinenumberEnd: 1278
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          101
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - ArrayList_Free
        - CloseHandle
        - DeleteCriticalSection
        - Stream_Free
        - ringbuffer_destroy
        - rpc_pdu_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1263,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1266,9'
          Dst:             CloseHandle
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1268,2'
          Dst:             ringbuffer_destroy
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1269,2'
          Dst:             DeleteCriticalSection
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1272,3'
          Dst:             rpc_pdu_free
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1275,3'
          Dst:             ArrayList_Free
    - functionName:    rpc_array_client_call_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 990
      functionLinenumberEnd: 992
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rpc_client_call_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:991,2'
          Dst:             rpc_client_call_free
    - functionName:    rpc_client_call_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 985
      functionLinenumberEnd: 987
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rpc_pdu_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          56
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_New
        - calloc
        - rpc_pdu_free
        - rpc_pdu_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:114,27'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/rpc_client.c:119,11'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rpc_client.c:124,7'
          Dst:             rpc_pdu_reset
        - Src:             'libfreerdp/core/gateway/rpc_client.c:130,2'
          Dst:             rpc_pdu_free
    - functionName:    rpc_client_resolve_gateway
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1177
      functionLinenumberEnd: 1199
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          102
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - freeaddrinfo
        - freerdp_settings_get_string
        - freerdp_settings_get_uint32
        - freerdp_tcp_address_to_string
        - freerdp_tcp_resolve_host
        - proxy_prepare
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1184,30'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1185,31'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1186,31'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1187,19'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1188,14'
          Dst:             proxy_prepare
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1189,12'
          Dst:             freerdp_tcp_resolve_host
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1195,7'
          Dst:             freerdp_tcp_address_to_string
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1196,3'
          Dst:             freeaddrinfo
    - functionName:    rpc_client_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1202
      functionLinenumberEnd: 1253
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          152
      EdgeCount:       32
      CyclomaticComplexity: 11
      functionsReached:
        - ArrayList_New
        - ArrayList_Object
        - CreateEventA
        - InitializeCriticalSectionAndSpinCount
        - Stream_New
        - calloc
        - ringbuffer_init
        - rpc_client_free
        - rpc_client_resolve_gateway
        - rpc_pdu_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1204,34'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1209,7'
          Dst:             rpc_client_resolve_gateway
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1218,16'
          Dst:             rpc_pdu_new
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1223,28'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1228,22'
          Dst:             CreateEventA
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1233,7'
          Dst:             ringbuffer_init
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1236,7'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1239,27'
          Dst:             ArrayList_New
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1244,8'
          Dst:             ArrayList_Object
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1250,2'
          Dst:             rpc_client_free
    - functionName:    rpc_client_write_call
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1036
      functionLinenumberEnd: 1173
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          401
      EdgeCount:       57
      CyclomaticComplexity: 17
      functionsReached:
        - ArrayList_Append
        - Stream_Buffer
        - Stream_Free
        - Stream_Length
        - Stream_SealLength
        - WLog_Print_dbg_tag
        - calloc
        - credssp_auth_encrypt
        - credssp_auth_pkg_name
        - credssp_auth_trailer_size
        - rpc_auth_pkg_to_security_provider
        - rpc_client_call_free
        - rpc_client_call_new
        - rpc_in_channel_send_pdu
        - rpc_offset_align
        - rpc_offset_pad
        - rpc_pdu_header_init
        - sspi_SecBufferFree
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1060,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1072,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1075,25'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1080,25'
          Dst:             credssp_auth_trailer_size
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1081,25'
          Dst:             rpc_pdu_header_init
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1090,16'
          Dst:             rpc_client_call_new
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1095,8'
          Dst:             ArrayList_Append
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1097,4'
          Dst:             rpc_client_call_free
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1105,27'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1107,19'
          Dst:             rpc_offset_align
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1111,23'
          Dst:             rpc_offset_align
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1112,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1116,41'
          Dst:             credssp_auth_pkg_name
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1116,7'
          Dst:             rpc_auth_pkg_to_security_provider
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1125,19'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1132,3'
          Dst:             rpc_offset_pad
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1137,2'
          Dst:             rpc_offset_pad
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1150,8'
          Dst:             credssp_auth_encrypt
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1155,4'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1163,2'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1165,6'
          Dst:             rpc_in_channel_send_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1171,2'
          Dst:             Stream_Free
    - functionName:    rpc_client_call_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 971
      functionLinenumberEnd: 982
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:973,31'
          Dst:             calloc
    - functionName:    rpc_in_channel_send_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 995
      functionLinenumberEnd: 1033
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          191
      EdgeCount:       44
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_Init
        - Stream_StaticConstInit
        - rpc_channel_write_int
        - rpc_client_call_find_by_id
        - rts_read_common_pdu_header
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:997,14'
          Dst:             Stream_Init
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1000,19'
          Dst:             rpc_channel_write_int
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1005,2'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1006,30'
          Dst:             rts_read_common_pdu_header
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1010,15'
          Dst:             rpc_client_call_find_by_id
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1025,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rpc_client.c:1025,28'
          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:    BIO_get_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:70,9'
          Dst:             BIO_ctrl
    - functionName:    rpc_client_in_channel_recv
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 862
      functionLinenumberEnd: 941
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          191
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - BIO_get_event
        - WLog_Print_dbg_tag
        - WaitForSingleObject
        - http_response_free
        - http_response_recv
        - rpc_in_channel_transition_to_state
        - rpc_ncacn_http_auth_uninit
        - rpc_ncacn_http_is_final_request
        - rpc_ncacn_http_recv_in_channel_response
        - rpc_ncacn_http_send_in_channel_request
        - rpc_virtual_connection_transition_to_state
        - rts_send_CONN_B1_pdu
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:871,2'
          Dst:             BIO_get_event
        - Src:             'libfreerdp/core/gateway/rpc_client.c:873,6'
          Dst:             WaitForSingleObject
        - Src:             'libfreerdp/core/gateway/rpc_client.c:878,14'
          Dst:             http_response_recv
        - Src:             'libfreerdp/core/gateway/rpc_client.c:885,9'
          Dst:             rpc_ncacn_http_recv_in_channel_response
        - Src:             'libfreerdp/core/gateway/rpc_client.c:887,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:888,5'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rpc_client.c:894,9'
          Dst:             rpc_ncacn_http_send_in_channel_request
        - Src:             'libfreerdp/core/gateway/rpc_client.c:896,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:897,5'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rpc_client.c:901,8'
          Dst:             rpc_ncacn_http_is_final_request
        - Src:             'libfreerdp/core/gateway/rpc_client.c:903,5'
          Dst:             rpc_ncacn_http_auth_uninit
        - Src:             'libfreerdp/core/gateway/rpc_client.c:904,5'
          Dst:             rpc_in_channel_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:908,10'
          Dst:             rts_send_CONN_B1_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:910,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:911,6'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rpc_client.c:915,5'
          Dst:             rpc_in_channel_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:919,6'
          Dst:             rpc_virtual_connection_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:927,3'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rpc_client.c:931,14'
          Dst:             http_response_recv
        - Src:             'libfreerdp/core/gateway/rpc_client.c:937,3'
          Dst:             http_response_free
    - functionName:    rpc_client_nondefault_out_channel_recv
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 767
      functionLinenumberEnd: 835
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          153
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - BIO_get_event
        - WLog_Print_dbg_tag
        - WaitForSingleObject
        - http_response_free
        - http_response_recv
        - rpc_ncacn_http_auth_uninit
        - rpc_ncacn_http_is_final_request
        - rpc_ncacn_http_recv_out_channel_response
        - rpc_ncacn_http_send_out_channel_request
        - rpc_out_channel_transition_to_state
        - rts_send_OUT_R1_A3_pdu
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rpc_client.c:782,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:773,2'
          Dst:             BIO_get_event
        - Src:             'libfreerdp/core/gateway/rpc_client.c:775,6'
          Dst:             WaitForSingleObject
        - Src:             'libfreerdp/core/gateway/rpc_client.c:778,13'
          Dst:             http_response_recv
        - Src:             'libfreerdp/core/gateway/rpc_client.c:785,9'
          Dst:             rpc_ncacn_http_recv_out_channel_response
        - Src:             'libfreerdp/core/gateway/rpc_client.c:787,10'
          Dst:             rpc_ncacn_http_send_out_channel_request
        - Src:             'libfreerdp/core/gateway/rpc_client.c:789,11'
          Dst:             rpc_ncacn_http_is_final_request
        - Src:             'libfreerdp/core/gateway/rpc_client.c:791,8'
          Dst:             rpc_ncacn_http_auth_uninit
        - Src:             'libfreerdp/core/gateway/rpc_client.c:793,12'
          Dst:             rts_send_OUT_R1_A3_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:796,9'
          Dst:             rpc_out_channel_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:801,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:811,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:816,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:825,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:831,3'
          Dst:             http_response_free
    - functionName:    rpc_client_default_out_channel_recv
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 764
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         71
      ICount:          481
      EdgeCount:       98
      CyclomaticComplexity: 29
      functionsReached:
        - BIO_get_event
        - Stream_Buffer
        - Stream_GetPosition
        - Stream_ResetPosition
        - Stream_SetPosition
        - WLog_Get
        - WLog_Print_dbg_tag
        - WaitForSingleObject
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - http_response_free
        - http_response_get_status_code
        - http_response_log_error_status_
        - http_response_recv
        - rpc_channel_free
        - rpc_channel_read
        - rpc_client_recv_fragment
        - rpc_ncacn_http_auth_uninit
        - rpc_ncacn_http_is_final_request
        - rpc_ncacn_http_recv_out_channel_response
        - rpc_ncacn_http_send_out_channel_request
        - rpc_out_channel_transition_to_state
        - rpc_virtual_connection_transition_to_state
        - rts_read_common_pdu_header
        - rts_send_CONN_A1_pdu
        - transport_get_context
        - winpr_HexDump
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:589,2'
          Dst:             BIO_get_event
        - Src:             'libfreerdp/core/gateway/rpc_client.c:593,7'
          Dst:             WaitForSingleObject
        - Src:             'libfreerdp/core/gateway/rpc_client.c:596,14'
          Dst:             http_response_recv
        - Src:             'libfreerdp/core/gateway/rpc_client.c:604,9'
          Dst:             rpc_ncacn_http_recv_out_channel_response
        - Src:             'libfreerdp/core/gateway/rpc_client.c:606,5'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rpc_client.c:607,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:613,9'
          Dst:             rpc_ncacn_http_send_out_channel_request
        - Src:             'libfreerdp/core/gateway/rpc_client.c:615,5'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rpc_client.c:616,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:620,8'
          Dst:             rpc_ncacn_http_is_final_request
        - Src:             'libfreerdp/core/gateway/rpc_client.c:622,5'
          Dst:             rpc_ncacn_http_auth_uninit
        - Src:             'libfreerdp/core/gateway/rpc_client.c:623,5'
          Dst:             rpc_out_channel_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:628,10'
          Dst:             rts_send_CONN_A1_pdu
        - Src:             'libfreerdp/core/gateway/rpc_client.c:630,6'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rpc_client.c:631,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:635,5'
          Dst:             rpc_out_channel_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:639,6'
          Dst:             rpc_virtual_connection_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:647,3'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rpc_client.c:652,7'
          Dst:             WaitForSingleObject
        - Src:             'libfreerdp/core/gateway/rpc_client.c:655,14'
          Dst:             http_response_recv
        - Src:             'libfreerdp/core/gateway/rpc_client.c:660,29'
          Dst:             http_response_get_status_code
        - Src:             'libfreerdp/core/gateway/rpc_client.c:663,4'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/gateway/rpc_client.c:663,4'
          Dst:             http_response_log_error_status_
        - Src:             'libfreerdp/core/gateway/rpc_client.c:667,27'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/gateway/rpc_client.c:668,5'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/rpc_client.c:668,5'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/rpc_client.c:671,4'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rpc_client.c:675,3'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/rpc_client.c:676,3'
          Dst:             rpc_virtual_connection_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:689,11'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:692,58'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:691,14'
          Dst:             rpc_channel_read
        - Src:             'libfreerdp/core/gateway/rpc_client.c:697,9'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:701,10'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:702,4'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:705,32'
          Dst:             rts_read_common_pdu_header
        - Src:             'libfreerdp/core/gateway/rpc_client.c:709,9'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:714,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:717,36'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/rpc_client.c:718,19'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:717,5'
          Dst:             winpr_HexDump
        - Src:             'libfreerdp/core/gateway/rpc_client.c:722,11'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:725,52'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:724,14'
          Dst:             rpc_channel_read
        - Src:             'libfreerdp/core/gateway/rpc_client.c:729,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rpc_client.c:733,9'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/rpc_client.c:739,14'
          Dst:             rpc_client_recv_fragment
        - Src:             'libfreerdp/core/gateway/rpc_client.c:748,6'
          Dst:             rpc_channel_free
        - Src:             'libfreerdp/core/gateway/rpc_client.c:751,6'
          Dst:             rpc_out_channel_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:753,6'
          Dst:             rpc_virtual_connection_transition_to_state
        - Src:             'libfreerdp/core/gateway/rpc_client.c:758,5'
          Dst:             Stream_ResetPosition
    - functionName:    rpc_client_out_channel_recv
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 838
      functionLinenumberEnd: 859
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          74
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - rpc_client_default_out_channel_recv
        - rpc_client_nondefault_out_channel_recv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:844,12'
          Dst:             rpc_client_default_out_channel_recv
        - Src:             'libfreerdp/core/gateway/rpc_client.c:852,12'
          Dst:             rpc_client_nondefault_out_channel_recv
    - functionName:    rpc_client_receive_pipe_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_client.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          140
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - ResetEvent
        - ringbuffer_commit_read_bytes
        - ringbuffer_peek
        - ringbuffer_used
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_client.c:162,2'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/gateway/rpc_client.c:163,12'
          Dst:             ringbuffer_peek
        - Src:             'libfreerdp/core/gateway/rpc_client.c:172,3'
          Dst:             ringbuffer_commit_read_bytes
        - Src:             'libfreerdp/core/gateway/rpc_client.c:174,6'
          Dst:             ringbuffer_used
        - Src:             'libfreerdp/core/gateway/rpc_client.c:175,9'
          Dst:             ResetEvent
        - Src:             'libfreerdp/core/gateway/rpc_client.c:177,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:    rpc_map_status_code_to_win32_error_code
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_fault.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         48
      ICount:          239
      EdgeCount:       94
      CyclomaticComplexity: 48
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rpc_fault.c:218,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    rpc_recv_fault_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_fault.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - rpc_error_to_string
        - rpc_map_status_code_to_win32_error_code
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_fault.c:425,16'
          Dst:             rpc_map_status_code_to_win32_error_code
        - Src:             'libfreerdp/core/gateway/rpc_fault.c:426,2'
          Dst:             rpc_error_to_string
        - Src:             'libfreerdp/core/gateway/rpc_fault.c:426,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rpc_error_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_fault.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          122
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - snprintf
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rpc_fault.c:367,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gateway/rpc_fault.c:377,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gateway/rpc_fault.c:387,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gateway/rpc_fault.c:392,8'
          Dst:             snprintf
    - functionName:    rpc_error_to_category
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rpc_fault.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          116
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rts_write_uuid
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 549
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         88
      ICount:          254
      EdgeCount:       89
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:550,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:551,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:553,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:556,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:556,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:556,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:557,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:557,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:557,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:558,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:558,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:558,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:559,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:559,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:559,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:560,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:560,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:560,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:561,2'
          Dst:             Stream_Write
    - 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:    21
      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_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:    12
      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:    14
      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
      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:    6
      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_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:    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_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:    rts_write_syntax_id
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 591
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          105
      EdgeCount:       36
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - rts_write_uuid
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:592,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:593,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:595,7'
          Dst:             rts_write_uuid
        - Src:             'libfreerdp/core/gateway/rts.c:598,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:601,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:601,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:601,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    rts_write_context_elem
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 653
      functionLinenumberEnd: 673
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         68
      ICount:          224
      EdgeCount:       72
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - rts_write_syntax_id
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:654,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:655,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:657,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:659,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:659,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:659,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:660,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:660,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:660,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:661,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:661,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:661,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:662,7'
          Dst:             rts_write_syntax_id
        - Src:             'libfreerdp/core/gateway/rts.c:668,8'
          Dst:             rts_write_syntax_id
    - 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_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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1242,3'
          Dst:             Stream_Fill
    - functionName:    rts_empty_command_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1498
      functionLinenumberEnd: 1507
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          54
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1499,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1501,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:1504,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    rts_send_OUT_R2_A7_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2146
      functionLinenumberEnd: 2188
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         39
      ICount:          174
      EdgeCount:       44
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_Free
        - Stream_New
        - WLog_Print_dbg_tag
        - rts_cookie_command_write
        - rts_destination_command_write
        - rts_pdu_header_init
        - rts_send_buffer_int
        - rts_version_command_write
        - rts_write_pdu_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:2149,29'
          Dst:             rts_pdu_header_init
        - Src:             'libfreerdp/core/gateway/rts.c:2154,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2155,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2158,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2161,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2167,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:2170,11'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rts.c:2175,7'
          Dst:             rts_write_pdu_header
        - Src:             'libfreerdp/core/gateway/rts.c:2177,7'
          Dst:             rts_destination_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:2179,7'
          Dst:             rts_cookie_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:2182,7'
          Dst:             rts_version_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:2184,11'
          Dst:             rts_send_buffer_int
        - Src:             'libfreerdp/core/gateway/rts.c:2186,2'
          Dst:             Stream_Free
    - functionName:    rts_pdu_header_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          39
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      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:    23
      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:    rts_write_pdu_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1268
      functionLinenumberEnd: 1280
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          146
      EdgeCount:       50
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - rts_write_common_pdu_header
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1269,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1270,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1271,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:1274,7'
          Dst:             rts_write_common_pdu_header
        - Src:             'libfreerdp/core/gateway/rts.c:1277,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1277,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1277,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:1278,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1278,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1278,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    rts_destination_command_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1577
      functionLinenumberEnd: 1587
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          87
      EdgeCount:       37
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1578,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1580,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:1583,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:1584,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1584,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1584,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    rts_cookie_command_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1410
      functionLinenumberEnd: 1420
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          59
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1411,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1413,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:1416,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:1417,2'
          Dst:             Stream_Write
    - functionName:    rts_version_command_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1485
      functionLinenumberEnd: 1495
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          66
      EdgeCount:       33
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1486,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1488,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:1491,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:1492,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    rts_send_buffer_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1593
      functionLinenumberEnd: 1621
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          148
      EdgeCount:       38
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_Buffer
        - Stream_Length
        - Stream_SealLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rpc_channel_write_int
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1597,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1598,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1599,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1601,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/rts.c:1604,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:1607,63'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rts.c:1606,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:1609,6'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rts.c:1611,6'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rts.c:1614,7'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/rts.c:1614,7'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rts.c:1614,7'
          Dst:             rpc_channel_write_int
        - Src:             'libfreerdp/core/gateway/rts.c:1617,20'
          Dst:             Stream_Length
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1325,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    rts_write_common_pdu_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         116
      ICount:          332
      EdgeCount:       117
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:208,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:209,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:210,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:213,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:213,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:213,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:214,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:214,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:214,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:215,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:215,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:215,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:216,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:216,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:216,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:217,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gateway/rts.c:218,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:218,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:218,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:219,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:219,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:219,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:220,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:220,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:220,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    rts_send_OUT_R2_C1_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2191
      functionLinenumberEnd: 2222
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          129
      EdgeCount:       32
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Free
        - Stream_New
        - WLog_Print_dbg_tag
        - rts_empty_command_write
        - rts_pdu_header_init
        - rts_send_buffer_int
        - rts_write_pdu_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:2194,29'
          Dst:             rts_pdu_header_init
        - Src:             'libfreerdp/core/gateway/rts.c:2197,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2198,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2201,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2207,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:2208,11'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rts.c:2213,7'
          Dst:             rts_write_pdu_header
        - Src:             'libfreerdp/core/gateway/rts.c:2216,7'
          Dst:             rts_empty_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:2218,11'
          Dst:             rts_send_buffer_int
        - Src:             'libfreerdp/core/gateway/rts.c:2220,2'
          Dst:             Stream_Free
    - functionName:    rts_command_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          114
      EdgeCount:       41
      CyclomaticComplexity: 22
      functionsReached:
        - snprintf
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rts.c:82,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:107,8'
          Dst:             snprintf
    - functionName:    rts_destination_command_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1562
      functionLinenumberEnd: 1574
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          76
      EdgeCount:       25
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1564,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1565,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1567,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/gateway/rts.c:1569,2'
          Dst:             stream_read_u32_le
    - 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:    18
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:114,3'
          Dst:             winpr_int_assert
    - functionName:    rts_flow_control_ack_command_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1325
      functionLinenumberEnd: 1363
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          173
      EdgeCount:       49
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rts_command_to_string
        - rts_destination_command_read
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1329,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1330,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1332,11'
          Dst:             rts_destination_command_read
        - Src:             'libfreerdp/core/gateway/rts.c:1340,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:1340,3'
          Dst:             rts_command_to_string
        - Src:             'libfreerdp/core/gateway/rts.c:1340,3'
          Dst:             rts_command_to_string
        - Src:             'libfreerdp/core/gateway/rts.c:1340,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:1347,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/gateway/rts.c:1350,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rts.c:1354,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rts.c:1359,3'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/gateway/rts.c:1361,3'
          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:    3
      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_Get_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u32_le
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:413,10'
          Dst:             stream_read_u32_le
    - functionName:    rts_read_auth_verifier_with_stub
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          215
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_Buffer
        - WLog_Print_dbg_tag
        - rts_pdu_ptype_to_string
        - rts_read_auth_verifier_no_checks
        - sdup
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rts.c:351,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:348,7'
          Dst:             rts_read_auth_verifier_no_checks
        - Src:             'libfreerdp/core/gateway/rts.c:382,21'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/rts.c:385,4'
          Dst:             rts_pdu_ptype_to_string
        - Src:             'libfreerdp/core/gateway/rts.c:385,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:394,18'
          Dst:             sdup
    - functionName:    rts_read_auth_verifier_no_checks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          220
      EdgeCount:       58
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_GetPosition
        - Stream_Pointer
        - Stream_SetPosition
        - rts_conditional_check_and_log
        - rts_conditional_safe_seek
        - sdup
        - stream_read_u32_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:287,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:288,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:289,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:291,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:294,15'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/rts.c:300,8'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/gateway/rts.c:302,8'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:305,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:306,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:307,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:308,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:309,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rts.c:314,21'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gateway/rts.c:315,8'
          Dst:             rts_conditional_safe_seek
        - Src:             'libfreerdp/core/gateway/rts.c:317,29'
          Dst:             sdup
    - functionName:    rts_pdu_ptype_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          122
      EdgeCount:       46
      CyclomaticComplexity: 24
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rts.c:113,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    sdup
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          74
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:195,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:199,8'
          Dst:             calloc
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    rts_conditional_check_and_log
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2505
      functionLinenumberEnd: 2514
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
      functionUses:    25
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:2508,22'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gateway/rts.c:2512,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
    - 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:    23
      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_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    rts_conditional_safe_seek
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2518
      functionLinenumberEnd: 2526
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_SafeSeekEx
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:2521,22'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gateway/rts.c:2525,9'
          Dst:             Stream_SafeSeekEx
    - 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:    rts_read_version
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          73
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - rts_conditional_check_and_log
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:457,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:458,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:460,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:462,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:463,2'
          Dst:             stream_read_u8
    - functionName:    rts_read_supported_versions
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 477
      functionLinenumberEnd: 503
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          141
      EdgeCount:       36
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - rts_conditional_check_and_log
        - rts_free_supported_versions
        - rts_read_version
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:478,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:479,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:481,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:484,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:488,27'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/rts.c:495,8'
          Dst:             rts_read_version
        - Src:             'libfreerdp/core/gateway/rts.c:497,4'
          Dst:             rts_free_supported_versions
    - functionName:    rts_free_supported_versions
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Stream_Get_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u16_le
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:369,10'
          Dst:             stream_read_u16_le
    - 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:    26
      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:    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:    rts_read_result
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 776
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          142
      EdgeCount:       63
      CyclomaticComplexity: 33
      functionsReached:
        - Stream_Get_UINT16
        - WLog_Print_dbg_tag
        - rts_conditional_check_and_log
        - rts_read_syntax_id
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rts.c:749,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/gateway/rts.c:763,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:742,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:743,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:745,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:748,21'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/gateway/rts.c:757,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:762,24'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/gateway/rts.c:771,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:775,9'
          Dst:             rts_read_syntax_id
    - functionName:    rts_read_syntax_id
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 588
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          79
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - rts_conditional_check_and_log
        - rts_read_uuid
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:577,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:578,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:580,7'
          Dst:             rts_read_uuid
        - Src:             'libfreerdp/core/gateway/rts.c:583,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:586,2'
          Dst:             stream_read_u32_le
    - functionName:    rts_read_uuid
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          99
      EdgeCount:       29
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Read
        - rts_conditional_check_and_log
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:533,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:534,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:536,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:539,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rts.c:540,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:541,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:542,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:543,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:544,2'
          Dst:             Stream_Read
    - functionName:    rts_result_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 729
      functionLinenumberEnd: 730
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:730,9'
          Dst:             calloc
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,3'
          Dst:             winpr_int_assert
    - functionName:    rts_read_result_list
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 810
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          150
      EdgeCount:       40
      CyclomaticComplexity: 7
      functionsReached:
        - rts_conditional_check_and_log
        - rts_read_result
        - rts_result_new
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:786,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:787,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:789,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:791,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:792,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:793,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:797,21'
          Dst:             rts_result_new
        - Src:             'libfreerdp/core/gateway/rts.c:804,9'
          Dst:             rts_read_result
    - functionName:    rts_align_stream
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          59
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetPosition
        - rpc_offset_align
        - rts_conditional_safe_seek
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:184,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:185,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:187,8'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/rts.c:188,8'
          Dst:             rpc_offset_align
        - Src:             'libfreerdp/core/gateway/rts.c:189,9'
          Dst:             rts_conditional_safe_seek
    - functionName:    rts_read_port_any
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          111
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_ConstPointer
        - rts_conditional_check_and_log
        - rts_conditional_safe_seek
        - sdup
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:507,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:508,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:510,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:513,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:517,20'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/gateway/rts.c:518,7'
          Dst:             rts_conditional_safe_seek
        - Src:             'libfreerdp/core/gateway/rts.c:520,20'
          Dst:             sdup
    - functionName:    rts_syntax_id_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 566
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:567,9'
          Dst:             calloc
    - functionName:    rts_read_context_elem
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 622
      functionLinenumberEnd: 650
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          163
      EdgeCount:       43
      CyclomaticComplexity: 8
      functionsReached:
        - rts_conditional_check_and_log
        - rts_read_syntax_id
        - rts_syntax_id_new
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:623,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:624,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:626,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:629,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:630,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:631,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:633,7'
          Dst:             rts_read_syntax_id
        - Src:             'libfreerdp/core/gateway/rts.c:638,32'
          Dst:             rts_syntax_id_new
        - Src:             'libfreerdp/core/gateway/rts.c:644,9'
          Dst:             rts_read_syntax_id
    - functionName:    rts_context_elem_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 616
      functionLinenumberEnd: 618
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:617,23'
          Dst:             calloc
    - functionName:    rts_read_auth_verifier
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          119
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - rts_read_auth_verifier_no_checks
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:329,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:330,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:331,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:333,7'
          Dst:             rts_read_auth_verifier_no_checks
        - Src:             'libfreerdp/core/gateway/rts.c:337,2'
          Dst:             winpr_int_assert
    - functionName:    rts_read_context_list
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 676
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          150
      EdgeCount:       40
      CyclomaticComplexity: 7
      functionsReached:
        - rts_conditional_check_and_log
        - rts_context_elem_new
        - rts_read_context_elem
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:677,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:678,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:680,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:682,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:683,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:684,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:688,23'
          Dst:             rts_context_elem_new
        - Src:             'libfreerdp/core/gateway/rts.c:694,9'
          Dst:             rts_read_context_elem
    - functionName:    rts_result_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rts_free_result
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 779
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          17
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rts_free_result_list
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 813
      functionLinenumberEnd: 822
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - rts_free_result
        - rts_result_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:819,3'
          Dst:             rts_free_result
        - Src:             'libfreerdp/core/gateway/rts.c:821,2'
          Dst:             rts_result_free
    - functionName:    rts_free_port_any
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rts_syntax_id_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 573
      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:    rts_context_elem_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 611
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rts_syntax_id_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:609,2'
          Dst:             rts_syntax_id_free
    - functionName:    rts_free_auth_verifier
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rts_free_context_list
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 702
      functionLinenumberEnd: 706
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rts_context_elem_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:705,2'
          Dst:             rts_context_elem_free
    - functionName:    rts_write_context_list
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 709
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          158
      EdgeCount:       61
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - rts_write_context_elem
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:710,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:711,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:713,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:715,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:715,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:715,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:716,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:717,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:722,8'
          Dst:             rts_write_context_elem
    - functionName:    rts_write_pdu_bind
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2482
      functionLinenumberEnd: 2501
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         64
      ICount:          201
      EdgeCount:       67
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - rts_write_auth_verifier
        - rts_write_common_pdu_header
        - rts_write_context_list
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:2484,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2485,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2487,7'
          Dst:             rts_write_common_pdu_header
        - Src:             'libfreerdp/core/gateway/rts.c:2490,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:2493,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2493,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2493,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:2494,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2494,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2494,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:2495,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2495,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2495,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:2497,7'
          Dst:             rts_write_context_list
        - Src:             'libfreerdp/core/gateway/rts.c:2500,9'
          Dst:             rts_write_auth_verifier
    - functionName:    rts_write_auth_verifier
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 453
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         109
      ICount:          346
      EdgeCount:       113
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - Stream_Zero
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:416,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:417,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:418,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:421,8'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/rts.c:425,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:427,3'
          Dst:             Stream_Zero
        - Src:             'libfreerdp/core/gateway/rts.c:431,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:433,17'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/rts.c:436,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:440,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:443,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:443,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:443,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:444,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:444,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:444,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:445,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:445,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:445,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:446,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:447,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:447,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:447,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:449,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:451,2'
          Dst:             Stream_Write
    - functionName:    rts_write_pdu_auth3
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2465
      functionLinenumberEnd: 2479
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          152
      EdgeCount:       50
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - rts_write_auth_verifier
        - rts_write_common_pdu_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:2466,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2467,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2469,7'
          Dst:             rts_write_common_pdu_header
        - Src:             'libfreerdp/core/gateway/rts.c:2472,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:2475,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2475,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2475,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:2476,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2476,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2476,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:2478,9'
          Dst:             rts_write_auth_verifier
    - functionName:    rts_recv_OUT_R2_B3_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2356
      functionLinenumberEnd: 2368
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          65
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - rpc_out_channel_transition_to_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:2359,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2360,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2363,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2365,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:2366,2'
          Dst:             rpc_out_channel_transition_to_state
    - functionName:    rts_recv_OUT_R2_A6_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2321
      functionLinenumberEnd: 2353
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          101
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - rpc_out_channel_transition_to_state
        - rts_send_OUT_R2_A7_pdu
        - rts_send_OUT_R2_C1_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:2325,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2326,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2329,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2331,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:2332,11'
          Dst:             rts_send_OUT_R2_C1_pdu
        - Src:             'libfreerdp/core/gateway/rts.c:2336,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:2340,11'
          Dst:             rts_send_OUT_R2_A7_pdu
        - Src:             'libfreerdp/core/gateway/rts.c:2344,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:2348,2'
          Dst:             rpc_out_channel_transition_to_state
        - Src:             'libfreerdp/core/gateway/rts.c:2350,2'
          Dst:             rpc_out_channel_transition_to_state
    - functionName:    rts_recv_OUT_R1_A2_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2287
      functionLinenumberEnd: 2318
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          118
      EdgeCount:       31
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - rpc_out_channel_new
        - rpc_out_channel_replacement_connect
        - rpc_out_channel_transition_to_state
        - rts_destination_command_read
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:2290,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2291,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2294,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2296,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:2298,11'
          Dst:             rts_destination_command_read
        - Src:             'libfreerdp/core/gateway/rts.c:2302,37'
          Dst:             rpc_out_channel_new
        - Src:             'libfreerdp/core/gateway/rts.c:2307,11'
          Dst:             rpc_out_channel_replacement_connect
        - Src:             'libfreerdp/core/gateway/rts.c:2311,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:2315,2'
          Dst:             rpc_out_channel_transition_to_state
    - functionName:    rts_send_ping_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2030
      functionLinenumberEnd: 2057
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          115
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Free
        - Stream_New
        - WLog_Print_dbg_tag
        - rts_pdu_header_init
        - rts_send_buffer_int
        - rts_write_pdu_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:2033,29'
          Dst:             rts_pdu_header_init
        - Src:             'libfreerdp/core/gateway/rts.c:2036,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2037,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2040,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2046,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:2047,11'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rts.c:2052,7'
          Dst:             rts_write_pdu_header
        - Src:             'libfreerdp/core/gateway/rts.c:2054,11'
          Dst:             rts_send_buffer_int
        - Src:             'libfreerdp/core/gateway/rts.c:2056,2'
          Dst:             Stream_Free
    - functionName:    rts_recv_flow_control_ack_with_destination_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1923
      functionLinenumberEnd: 1997
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          217
      EdgeCount:       49
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - rts_command_to_string
        - rts_destination_command_read
        - rts_flow_control_ack_command_read
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rts.c:1964,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1946,11'
          Dst:             rts_destination_command_read
        - Src:             'libfreerdp/core/gateway/rts.c:1954,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:1954,3'
          Dst:             rts_command_to_string
        - Src:             'libfreerdp/core/gateway/rts.c:1954,3'
          Dst:             rts_command_to_string
        - Src:             'libfreerdp/core/gateway/rts.c:1954,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:1960,7'
          Dst:             rts_destination_command_read
        - Src:             'libfreerdp/core/gateway/rts.c:1975,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:1975,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:1982,7'
          Dst:             rts_flow_control_ack_command_read
        - Src:             'libfreerdp/core/gateway/rts.c:1987,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:1992,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1993,2'
          Dst:             winpr_int_assert
    - functionName:    rts_recv_flow_control_ack_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1899
      functionLinenumberEnd: 1920
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          95
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - rts_flow_control_ack_command_read
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1905,7'
          Dst:             rts_flow_control_ack_command_read
        - Src:             'libfreerdp/core/gateway/rts.c:1909,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:1914,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1915,2'
          Dst:             winpr_int_assert
    - functionName:    rts_recv_out_of_sequence_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2372
      functionLinenumberEnd: 2462
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         88
      ICount:          348
      EdgeCount:       106
      CyclomaticComplexity: 20
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Length
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - memcmp
        - rts_extract_pdu_signature
        - rts_identify_pdu_signature
        - rts_print_pdu_signature
        - rts_recv_OUT_R1_A2_pdu
        - rts_recv_OUT_R2_A6_pdu
        - rts_recv_OUT_R2_B3_pdu
        - rts_recv_flow_control_ack_pdu
        - rts_recv_flow_control_ack_with_destination_pdu
        - rts_send_ping_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:2378,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2379,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2380,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2382,14'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/gateway/rts.c:2384,23'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/rts.c:2388,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:2388,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:2397,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:2397,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:2401,7'
          Dst:             rts_extract_pdu_signature
        - Src:             'libfreerdp/core/gateway/rts.c:2404,2'
          Dst:             rts_print_pdu_signature
        - Src:             'libfreerdp/core/gateway/rts.c:2406,6'
          Dst:             memcmp
        - Src:             'libfreerdp/core/gateway/rts.c:2408,12'
          Dst:             rts_recv_flow_control_ack_pdu
        - Src:             'libfreerdp/core/gateway/rts.c:2410,11'
          Dst:             memcmp
        - Src:             'libfreerdp/core/gateway/rts.c:2413,12'
          Dst:             rts_recv_flow_control_ack_with_destination_pdu
        - Src:             'libfreerdp/core/gateway/rts.c:2415,11'
          Dst:             memcmp
        - Src:             'libfreerdp/core/gateway/rts.c:2417,12'
          Dst:             rts_send_ping_pdu
        - Src:             'libfreerdp/core/gateway/rts.c:2423,8'
          Dst:             memcmp
        - Src:             'libfreerdp/core/gateway/rts.c:2425,14'
          Dst:             rts_recv_OUT_R1_A2_pdu
        - Src:             'libfreerdp/core/gateway/rts.c:2430,8'
          Dst:             memcmp
        - Src:             'libfreerdp/core/gateway/rts.c:2432,14'
          Dst:             rts_recv_OUT_R2_A6_pdu
        - Src:             'libfreerdp/core/gateway/rts.c:2437,8'
          Dst:             memcmp
        - Src:             'libfreerdp/core/gateway/rts.c:2439,14'
          Dst:             rts_recv_OUT_R2_B3_pdu
        - Src:             'libfreerdp/core/gateway/rts.c:2446,30'
          Dst:             rts_identify_pdu_signature
        - Src:             'libfreerdp/core/gateway/rts.c:2447,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:2447,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:2449,3'
          Dst:             rts_print_pdu_signature
        - Src:             'libfreerdp/core/gateway/rts.c:2452,21'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gateway/rts.c:2455,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:2455,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:2457,3'
          Dst:             rts_print_pdu_signature
    - functionName:    rts_send_OUT_R1_A3_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2225
      functionLinenumberEnd: 2284
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         43
      ICount:          208
      EdgeCount:       50
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_Free
        - Stream_New
        - WLog_Print_dbg_tag
        - rts_cookie_command_write
        - rts_pdu_header_init
        - rts_receive_window_size_command_write
        - rts_send_buffer_int
        - rts_version_command_write
        - rts_write_pdu_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:2228,29'
          Dst:             rts_pdu_header_init
        - Src:             'libfreerdp/core/gateway/rts.c:2237,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2240,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2243,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2246,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2252,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:2258,11'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rts.c:2263,7'
          Dst:             rts_write_pdu_header
        - Src:             'libfreerdp/core/gateway/rts.c:2265,7'
          Dst:             rts_version_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:2267,7'
          Dst:             rts_cookie_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:2270,7'
          Dst:             rts_cookie_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:2273,7'
          Dst:             rts_cookie_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:2276,7'
          Dst:             rts_receive_window_size_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:2280,11'
          Dst:             rts_send_buffer_int
        - Src:             'libfreerdp/core/gateway/rts.c:2282,2'
          Dst:             Stream_Free
    - functionName:    rts_receive_window_size_command_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1310
      functionLinenumberEnd: 1320
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          87
      EdgeCount:       37
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1311,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1313,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:1316,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:1317,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1317,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1317,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    rts_client_address_command_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1522
      functionLinenumberEnd: 1545
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          79
      EdgeCount:       25
      CyclomaticComplexity: 4
      functionsReached:
        - rts_conditional_check_and_log
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1525,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1526,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1528,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:1530,2'
          Dst:             stream_read_u32_le
    - functionName:    rts_padding_command_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1510
      functionLinenumberEnd: 1519
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          71
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - rts_conditional_check_and_log
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1512,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1513,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1514,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:1516,2'
          Dst:             stream_read_u32_le
    - functionName:    rts_command_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2061
      functionLinenumberEnd: 2143
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          175
      EdgeCount:       39
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - rts_client_address_command_read
        - rts_conditional_check_and_log
        - rts_padding_command_read
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rts.c:2067,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:2065,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2102,9'
          Dst:             rts_padding_command_read
        - Src:             'libfreerdp/core/gateway/rts.c:2115,9'
          Dst:             rts_client_address_command_read
        - Src:             'libfreerdp/core/gateway/rts.c:2132,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:2137,7'
          Dst:             rts_conditional_check_and_log
    - functionName:    rts_recv_ping_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2000
      functionLinenumberEnd: 2026
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          152
      EdgeCount:       49
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rts_free_pdu_header
        - rts_read_pdu_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:2004,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2005,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2006,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:2008,7'
          Dst:             rts_read_pdu_header
        - Src:             'libfreerdp/core/gateway/rts.c:2014,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:2014,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:2020,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:2020,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:2025,2'
          Dst:             rts_free_pdu_header
    - functionName:    rts_read_pdu_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1193
      functionLinenumberEnd: 1194
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rts_read_pdu_header_ex
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1194,9'
          Dst:             rts_read_pdu_header_ex
    - functionName:    rts_free_pdu_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1129
      functionLinenumberEnd: 1190
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          157
      EdgeCount:       34
      CyclomaticComplexity: 3
      functionsReached:
        - rts_free_pdu_alter_context
        - rts_free_pdu_alter_context_response
        - rts_free_pdu_auth3
        - rts_free_pdu_bind
        - rts_free_pdu_bind_ack
        - rts_free_pdu_bind_nak
        - rts_free_pdu_cancel_ack
        - rts_free_pdu_fault
        - rts_free_pdu_orphaned
        - rts_free_pdu_request
        - rts_free_pdu_response
        - rts_free_pdu_rts
      functionUses:    6
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rts.c:1133,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1136,4'
          Dst:             rts_free_pdu_alter_context
        - Src:             'libfreerdp/core/gateway/rts.c:1139,4'
          Dst:             rts_free_pdu_alter_context_response
        - Src:             'libfreerdp/core/gateway/rts.c:1142,4'
          Dst:             rts_free_pdu_bind
        - Src:             'libfreerdp/core/gateway/rts.c:1145,4'
          Dst:             rts_free_pdu_bind_ack
        - Src:             'libfreerdp/core/gateway/rts.c:1148,4'
          Dst:             rts_free_pdu_bind_nak
        - Src:             'libfreerdp/core/gateway/rts.c:1151,4'
          Dst:             rts_free_pdu_auth3
        - Src:             'libfreerdp/core/gateway/rts.c:1154,4'
          Dst:             rts_free_pdu_cancel_ack
        - Src:             'libfreerdp/core/gateway/rts.c:1157,4'
          Dst:             rts_free_pdu_fault
        - Src:             'libfreerdp/core/gateway/rts.c:1160,4'
          Dst:             rts_free_pdu_orphaned
        - Src:             'libfreerdp/core/gateway/rts.c:1163,4'
          Dst:             rts_free_pdu_request
        - Src:             'libfreerdp/core/gateway/rts.c:1166,4'
          Dst:             rts_free_pdu_response
        - Src:             'libfreerdp/core/gateway/rts.c:1169,4'
          Dst:             rts_free_pdu_rts
    - functionName:    rts_free_pdu_alter_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 831
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rts_free_auth_verifier
        - rts_free_context_list
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:829,2'
          Dst:             rts_free_context_list
        - Src:             'libfreerdp/core/gateway/rts.c:830,2'
          Dst:             rts_free_auth_verifier
    - functionName:    rts_free_pdu_alter_context_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 886
      functionLinenumberEnd: 893
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rts_free_auth_verifier
        - rts_free_port_any
        - rts_free_result_list
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:890,2'
          Dst:             rts_free_port_any
        - Src:             'libfreerdp/core/gateway/rts.c:891,2'
          Dst:             rts_free_result_list
        - Src:             'libfreerdp/core/gateway/rts.c:892,2'
          Dst:             rts_free_auth_verifier
    - functionName:    rts_free_pdu_bind
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 917
      functionLinenumberEnd: 922
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rts_free_auth_verifier
        - rts_free_context_list
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:920,2'
          Dst:             rts_free_context_list
        - Src:             'libfreerdp/core/gateway/rts.c:921,2'
          Dst:             rts_free_auth_verifier
    - functionName:    rts_free_pdu_bind_ack
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 949
      functionLinenumberEnd: 955
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rts_free_auth_verifier
        - rts_free_port_any
        - rts_free_result_list
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:952,2'
          Dst:             rts_free_port_any
        - Src:             'libfreerdp/core/gateway/rts.c:953,2'
          Dst:             rts_free_result_list
        - Src:             'libfreerdp/core/gateway/rts.c:954,2'
          Dst:             rts_free_auth_verifier
    - functionName:    rts_free_pdu_bind_nak
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 970
      functionLinenumberEnd: 975
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rts_free_supported_versions
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:974,2'
          Dst:             rts_free_supported_versions
    - functionName:    rts_free_pdu_auth3
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 992
      functionLinenumberEnd: 996
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rts_free_auth_verifier
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:995,2'
          Dst:             rts_free_auth_verifier
    - functionName:    rts_free_pdu_cancel_ack
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1034
      functionLinenumberEnd: 1038
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rts_free_auth_verifier
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1037,2'
          Dst:             rts_free_auth_verifier
    - functionName:    rts_free_pdu_fault
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1016
      functionLinenumberEnd: 1020
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rts_free_auth_verifier
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1019,2'
          Dst:             rts_free_auth_verifier
    - functionName:    rts_free_pdu_orphaned
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1052
      functionLinenumberEnd: 1056
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rts_free_auth_verifier
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1055,2'
          Dst:             rts_free_auth_verifier
    - functionName:    rts_free_pdu_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1076
      functionLinenumberEnd: 1080
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rts_free_auth_verifier
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1079,2'
          Dst:             rts_free_auth_verifier
    - functionName:    rts_free_pdu_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1102
      functionLinenumberEnd: 1107
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rts_free_auth_verifier
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1106,2'
          Dst:             rts_free_auth_verifier
    - functionName:    rts_free_pdu_rts
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1124
      functionLinenumberEnd: 1126
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rts_read_pdu_header_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1198
      functionLinenumberEnd: 1265
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          227
      EdgeCount:       43
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - rts_pdu_ptype_to_string
        - rts_read_common_pdu_header
        - rts_read_pdu_alter_context
        - rts_read_pdu_alter_context_response
        - rts_read_pdu_auth3
        - rts_read_pdu_bind
        - rts_read_pdu_bind_ack
        - rts_read_pdu_bind_nak
        - rts_read_pdu_cancel_ack
        - rts_read_pdu_fault
        - rts_read_pdu_orphaned
        - rts_read_pdu_request
        - rts_read_pdu_response
        - rts_read_pdu_rts
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/rts.c:1209,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1200,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1201,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1203,34'
          Dst:             rts_read_common_pdu_header
        - Src:             'libfreerdp/core/gateway/rts.c:1207,2'
          Dst:             rts_pdu_ptype_to_string
        - Src:             'libfreerdp/core/gateway/rts.c:1207,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:1212,9'
          Dst:             rts_read_pdu_alter_context
        - Src:             'libfreerdp/core/gateway/rts.c:1215,9'
          Dst:             rts_read_pdu_alter_context_response
        - Src:             'libfreerdp/core/gateway/rts.c:1218,9'
          Dst:             rts_read_pdu_bind
        - Src:             'libfreerdp/core/gateway/rts.c:1221,9'
          Dst:             rts_read_pdu_bind_ack
        - Src:             'libfreerdp/core/gateway/rts.c:1224,9'
          Dst:             rts_read_pdu_bind_nak
        - Src:             'libfreerdp/core/gateway/rts.c:1227,9'
          Dst:             rts_read_pdu_auth3
        - Src:             'libfreerdp/core/gateway/rts.c:1230,9'
          Dst:             rts_read_pdu_cancel_ack
        - Src:             'libfreerdp/core/gateway/rts.c:1233,9'
          Dst:             rts_read_pdu_fault
        - Src:             'libfreerdp/core/gateway/rts.c:1236,9'
          Dst:             rts_read_pdu_orphaned
        - Src:             'libfreerdp/core/gateway/rts.c:1239,9'
          Dst:             rts_read_pdu_request
        - Src:             'libfreerdp/core/gateway/rts.c:1242,9'
          Dst:             rts_read_pdu_response
        - Src:             'libfreerdp/core/gateway/rts.c:1245,9'
          Dst:             rts_read_pdu_rts
    - functionName:    rts_read_common_pdu_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          240
      EdgeCount:       64
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
        - Stream_Read
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:227,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:228,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:232,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/gateway/rts.c:237,21'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gateway/rts.c:242,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:243,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:244,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:245,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:246,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/gateway/rts.c:247,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:248,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:249,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rts.c:254,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:261,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:270,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/gateway/rts.c:276,22'
          Dst:             Stream_GetRemainingLength
    - functionName:    rts_read_pdu_alter_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 834
      functionLinenumberEnd: 853
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          108
      EdgeCount:       31
      CyclomaticComplexity: 5
      functionsReached:
        - rts_conditional_check_and_log
        - rts_read_auth_verifier
        - rts_read_context_list
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:835,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:836,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:838,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:842,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:843,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:844,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rts.c:846,7'
          Dst:             rts_read_context_list
        - Src:             'libfreerdp/core/gateway/rts.c:849,7'
          Dst:             rts_read_auth_verifier
    - functionName:    rts_read_pdu_alter_context_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 858
      functionLinenumberEnd: 883
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          132
      EdgeCount:       37
      CyclomaticComplexity: 7
      functionsReached:
        - rts_align_stream
        - rts_conditional_check_and_log
        - rts_read_auth_verifier
        - rts_read_port_any
        - rts_read_result_list
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:859,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:860,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:862,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:866,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:867,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:868,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rts.c:870,7'
          Dst:             rts_read_port_any
        - Src:             'libfreerdp/core/gateway/rts.c:873,7'
          Dst:             rts_align_stream
        - Src:             'libfreerdp/core/gateway/rts.c:876,7'
          Dst:             rts_read_result_list
        - Src:             'libfreerdp/core/gateway/rts.c:879,7'
          Dst:             rts_read_auth_verifier
    - functionName:    rts_read_pdu_bind
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 896
      functionLinenumberEnd: 914
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          108
      EdgeCount:       31
      CyclomaticComplexity: 5
      functionsReached:
        - rts_conditional_check_and_log
        - rts_read_auth_verifier
        - rts_read_context_list
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:897,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:898,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:900,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:903,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:904,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:905,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rts.c:907,7'
          Dst:             rts_read_context_list
        - Src:             'libfreerdp/core/gateway/rts.c:910,7'
          Dst:             rts_read_auth_verifier
    - functionName:    rts_read_pdu_bind_ack
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 925
      functionLinenumberEnd: 946
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          123
      EdgeCount:       34
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - rts_align_stream
        - rts_read_auth_verifier
        - rts_read_port_any
        - rts_read_result_list
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:926,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:927,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:929,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/gateway/rts.c:932,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:933,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:934,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rts.c:936,7'
          Dst:             rts_read_port_any
        - Src:             'libfreerdp/core/gateway/rts.c:939,7'
          Dst:             rts_align_stream
        - Src:             'libfreerdp/core/gateway/rts.c:942,7'
          Dst:             rts_read_result_list
        - Src:             'libfreerdp/core/gateway/rts.c:945,9'
          Dst:             rts_read_auth_verifier
    - functionName:    rts_read_pdu_bind_nak
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 958
      functionLinenumberEnd: 967
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          71
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - rts_conditional_check_and_log
        - rts_read_supported_versions
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:959,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:960,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:962,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:965,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:966,9'
          Dst:             rts_read_supported_versions
    - functionName:    rts_read_pdu_auth3
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 978
      functionLinenumberEnd: 989
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          80
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - rts_conditional_check_and_log
        - rts_read_auth_verifier
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:979,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:980,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:982,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:985,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:986,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:988,9'
          Dst:             rts_read_auth_verifier
    - functionName:    rts_read_pdu_cancel_ack
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1023
      functionLinenumberEnd: 1031
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          66
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - rts_conditional_check_and_log
        - rts_read_auth_verifier
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1024,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1025,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1027,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:1030,9'
          Dst:             rts_read_auth_verifier
    - functionName:    rts_read_pdu_fault
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 999
      functionLinenumberEnd: 1013
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          108
      EdgeCount:       29
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - Win32ErrorCode2Tag
        - rts_conditional_check_and_log
        - rts_read_auth_verifier_with_stub
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1000,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1001,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1003,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:1005,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rts.c:1006,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:1007,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:1008,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:1009,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rts.c:1011,2'
          Dst:             Win32ErrorCode2Tag
        - Src:             'libfreerdp/core/gateway/rts.c:1011,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:1012,9'
          Dst:             rts_read_auth_verifier_with_stub
    - functionName:    rts_read_pdu_orphaned
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1041
      functionLinenumberEnd: 1049
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          66
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - rts_conditional_check_and_log
        - rts_read_auth_verifier
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1042,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1043,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1045,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:1048,9'
          Dst:             rts_read_auth_verifier
    - functionName:    rts_read_pdu_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1059
      functionLinenumberEnd: 1073
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          100
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - rts_conditional_check_and_log
        - rts_read_auth_verifier_with_stub
        - rts_read_uuid
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1060,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1061,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1063,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:1066,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rts.c:1067,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:1068,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:1069,7'
          Dst:             rts_read_uuid
        - Src:             'libfreerdp/core/gateway/rts.c:1072,9'
          Dst:             rts_read_auth_verifier_with_stub
    - functionName:    rts_read_pdu_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1083
      functionLinenumberEnd: 1099
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          105
      EdgeCount:       30
      CyclomaticComplexity: 4
      functionsReached:
        - rts_align_stream
        - rts_conditional_check_and_log
        - rts_read_auth_verifier_with_stub
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1084,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1085,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1087,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:1090,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rts.c:1091,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:1092,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:1093,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/rts.c:1095,7'
          Dst:             rts_align_stream
        - Src:             'libfreerdp/core/gateway/rts.c:1098,9'
          Dst:             rts_read_auth_verifier_with_stub
    - functionName:    rts_read_pdu_rts
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1110
      functionLinenumberEnd: 1121
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          73
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - rts_conditional_check_and_log
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1111,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1112,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1114,7'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts.c:1118,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gateway/rts.c:1119,2'
          Dst:             stream_read_u16_le
    - functionName:    rts_flow_control_ack_command_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1368
      functionLinenumberEnd: 1380
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          125
      EdgeCount:       51
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1369,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1371,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:1374,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:1375,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1375,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1375,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:1376,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1376,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1376,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:1377,2'
          Dst:             Stream_Write
    - functionName:    rts_send_flow_control_ack_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1846
      functionLinenumberEnd: 1895
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          176
      EdgeCount:       40
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Free
        - Stream_New
        - WLog_Print_dbg_tag
        - rts_destination_command_write
        - rts_flow_control_ack_command_write
        - rts_pdu_header_init
        - rts_send_buffer_int
        - rts_write_pdu_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1849,29'
          Dst:             rts_pdu_header_init
        - Src:             'libfreerdp/core/gateway/rts.c:1857,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1860,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1863,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1866,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1872,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:1878,11'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rts.c:1883,7'
          Dst:             rts_write_pdu_header
        - Src:             'libfreerdp/core/gateway/rts.c:1885,7'
          Dst:             rts_destination_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:1889,7'
          Dst:             rts_flow_control_ack_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:1892,11'
          Dst:             rts_send_buffer_int
        - Src:             'libfreerdp/core/gateway/rts.c:1894,2'
          Dst:             Stream_Free
    - functionName:    rts_receive_window_size_command_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1285
      functionLinenumberEnd: 1306
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          110
      EdgeCount:       34
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Get_UINT32
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1286,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1287,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1289,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/gateway/rts.c:1291,31'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gateway/rts.c:1294,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:1294,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:1301,21'
          Dst:             Stream_Get_UINT32
    - functionName:    rts_version_command_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1454
      functionLinenumberEnd: 1481
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          146
      EdgeCount:       46
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Get_UINT32
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1455,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1456,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1458,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:1461,31'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gateway/rts.c:1464,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:1464,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:1470,27'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gateway/rts.c:1473,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:1473,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    rts_recv_CONN_C2_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1787
      functionLinenumberEnd: 1840
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         67
      ICount:          249
      EdgeCount:       76
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rts_connection_timeout_command_read
        - rts_free_pdu_header
        - rts_read_pdu_header
        - rts_receive_window_size_command_read
        - rts_version_command_read
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1792,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1793,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1796,7'
          Dst:             rts_read_pdu_header
        - Src:             'libfreerdp/core/gateway/rts.c:1801,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:1801,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:1809,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:1809,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:1815,7'
          Dst:             rts_version_command_read
        - Src:             'libfreerdp/core/gateway/rts.c:1818,7'
          Dst:             rts_receive_window_size_command_read
        - Src:             'libfreerdp/core/gateway/rts.c:1821,7'
          Dst:             rts_connection_timeout_command_read
        - Src:             'libfreerdp/core/gateway/rts.c:1824,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:1824,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:1829,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1830,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1831,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1839,2'
          Dst:             rts_free_pdu_header
    - functionName:    rts_connection_timeout_command_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1385
      functionLinenumberEnd: 1407
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          110
      EdgeCount:       34
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Get_UINT32
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1386,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1387,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1389,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/gateway/rts.c:1392,31'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gateway/rts.c:1395,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:1395,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:1402,21'
          Dst:             Stream_Get_UINT32
    - functionName:    rts_association_group_id_command_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1548
      functionLinenumberEnd: 1558
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          59
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1549,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1551,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:1554,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:1555,2'
          Dst:             Stream_Write
    - functionName:    rts_client_keepalive_command_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1435
      functionLinenumberEnd: 1450
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          87
      EdgeCount:       37
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1436,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1438,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:1446,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:1447,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1447,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1447,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    rts_channel_lifetime_command_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1423
      functionLinenumberEnd: 1432
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          87
      EdgeCount:       37
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1424,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1426,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/rts.c:1428,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/rts.c:1429,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1429,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1429,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    rts_send_CONN_B1_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1729
      functionLinenumberEnd: 1781
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         38
      ICount:          192
      EdgeCount:       46
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_Free
        - Stream_New
        - WLog_Print_dbg_tag
        - rts_association_group_id_command_write
        - rts_channel_lifetime_command_write
        - rts_client_keepalive_command_write
        - rts_cookie_command_write
        - rts_pdu_header_init
        - rts_send_buffer_int
        - rts_version_command_write
        - rts_write_pdu_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1732,29'
          Dst:             rts_pdu_header_init
        - Src:             'libfreerdp/core/gateway/rts.c:1739,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1742,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1745,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1751,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:1756,11'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rts.c:1760,7'
          Dst:             rts_write_pdu_header
        - Src:             'libfreerdp/core/gateway/rts.c:1762,7'
          Dst:             rts_version_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:1764,7'
          Dst:             rts_cookie_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:1767,7'
          Dst:             rts_cookie_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:1769,7'
          Dst:             rts_channel_lifetime_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:1772,7'
          Dst:             rts_client_keepalive_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:1775,7'
          Dst:             rts_association_group_id_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:1778,11'
          Dst:             rts_send_buffer_int
        - Src:             'libfreerdp/core/gateway/rts.c:1780,2'
          Dst:             Stream_Free
    - functionName:    rts_recv_CONN_A3_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1682
      functionLinenumberEnd: 1723
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         51
      ICount:          194
      EdgeCount:       58
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rts_connection_timeout_command_read
        - rts_free_pdu_header
        - rts_read_pdu_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1687,7'
          Dst:             rts_read_pdu_header
        - Src:             'libfreerdp/core/gateway/rts.c:1692,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:1692,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:1700,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:1700,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:1707,7'
          Dst:             rts_connection_timeout_command_read
        - Src:             'libfreerdp/core/gateway/rts.c:1710,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts.c:1710,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts.c:1713,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1714,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1715,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1722,2'
          Dst:             rts_free_pdu_header
    - functionName:    rts_send_CONN_A1_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1627
      functionLinenumberEnd: 1679
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          182
      EdgeCount:       41
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_Free
        - Stream_New
        - WLog_Print_dbg_tag
        - rts_cookie_command_write
        - rts_pdu_header_init
        - rts_receive_window_size_command_write
        - rts_send_buffer_int
        - rts_version_command_write
        - rts_write_pdu_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts.c:1630,29'
          Dst:             rts_pdu_header_init
        - Src:             'libfreerdp/core/gateway/rts.c:1637,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1640,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1643,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts.c:1649,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/rts.c:1654,11'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/rts.c:1659,7'
          Dst:             rts_write_pdu_header
        - Src:             'libfreerdp/core/gateway/rts.c:1661,11'
          Dst:             rts_version_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:1664,11'
          Dst:             rts_cookie_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:1668,11'
          Dst:             rts_cookie_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:1671,11'
          Dst:             rts_receive_window_size_command_write
        - Src:             'libfreerdp/core/gateway/rts.c:1675,11'
          Dst:             rts_send_buffer_int
        - Src:             'libfreerdp/core/gateway/rts.c:1677,2'
          Dst:             Stream_Free
    - 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_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:    rts_print_pdu_signature
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts_signature.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          101
      EdgeCount:       29
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rts_identify_pdu_signature
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts_signature.c:405,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts_signature.c:407,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts_signature.c:407,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/rts_signature.c:410,16'
          Dst:             rts_identify_pdu_signature
        - Src:             'libfreerdp/core/gateway/rts_signature.c:413,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/rts_signature.c:413,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    rts_identify_pdu_signature
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts_signature.c'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          143
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - 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:    1
      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_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    rts_extract_pdu_signature
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts_signature.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rts_extract_pdu_signature_ex
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts_signature.c:311,9'
          Dst:             rts_extract_pdu_signature_ex
    - functionName:    rts_extract_pdu_signature_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts_signature.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          194
      EdgeCount:       46
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Pointer
        - Stream_StaticInit
        - rts_command_length
        - rts_conditional_check_and_log
        - rts_conditional_safe_seek
        - rts_free_pdu_header
        - rts_read_pdu_header_ex
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts_signature.c:322,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts_signature.c:323,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts_signature.c:325,43'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gateway/rts_signature.c:325,64'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gateway/rts_signature.c:325,15'
          Dst:             Stream_StaticInit
        - Src:             'libfreerdp/core/gateway/rts_signature.c:328,8'
          Dst:             rts_read_pdu_header_ex
        - Src:             'libfreerdp/core/gateway/rts_signature.c:344,8'
          Dst:             rts_conditional_check_and_log
        - Src:             'libfreerdp/core/gateway/rts_signature.c:347,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gateway/rts_signature.c:353,8'
          Dst:             rts_command_length
        - Src:             'libfreerdp/core/gateway/rts_signature.c:355,8'
          Dst:             rts_conditional_safe_seek
        - Src:             'libfreerdp/core/gateway/rts_signature.c:361,2'
          Dst:             rts_free_pdu_header
    - functionName:    rts_match_pdu_signature_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts_signature.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          81
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - memcmp
        - rts_extract_pdu_signature_ex
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts_signature.c:297,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts_signature.c:298,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/rts_signature.c:300,7'
          Dst:             rts_extract_pdu_signature_ex
        - Src:             'libfreerdp/core/gateway/rts_signature.c:305,9'
          Dst:             memcmp
    - functionName:    rts_match_pdu_signature
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/rts_signature.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rts_match_pdu_signature_ex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/rts_signature.c:288,9'
          Dst:             rts_match_pdu_signature_ex
    - 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:    http_response_parse_header_field
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 713
      functionLinenumberEnd: 829
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         86
      ICount:          447
      EdgeCount:       111
      CyclomaticComplexity: 27
      functionsReached:
        - HashTable_Insert
        - __errno_location
        - _strdup
        - _stricmp
        - strchr
        - strtoull
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:714,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:719,6'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/gateway/http.c:722,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/gateway/http.c:723,9'
          Dst:             strtoull
        - Src:             'libfreerdp/core/gateway/http.c:725,8'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/gateway/http.c:728,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:728,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:732,6'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/gateway/http.c:735,27'
          Dst:             _strdup
        - Src:             'libfreerdp/core/gateway/http.c:740,6'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/gateway/http.c:742,7'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/gateway/http.c:744,12'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/gateway/http.c:752,6'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/gateway/http.c:755,35'
          Dst:             _strdup
        - Src:             'libfreerdp/core/gateway/http.c:760,6'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/gateway/http.c:763,34'
          Dst:             _strdup
        - Src:             'libfreerdp/core/gateway/http.c:768,6'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/gateway/http.c:772,21'
          Dst:             strchr
        - Src:             'libfreerdp/core/gateway/http.c:786,10'
          Dst:             HashTable_Insert
        - Src:             'libfreerdp/core/gateway/http.c:789,6'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/gateway/http.c:791,21'
          Dst:             strchr
        - Src:             'libfreerdp/core/gateway/http.c:824,10'
          Dst:             HashTable_Insert
    - functionName:    http_response_parse_header_status_line
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 662
      functionLinenumberEnd: 708
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          145
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_Print_dbg_tag
        - __errno_location
        - _strdup
        - strchr
        - strtol
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:671,15'
          Dst:             strchr
        - Src:             'libfreerdp/core/gateway/http.c:677,14'
          Dst:             strchr
        - Src:             'libfreerdp/core/gateway/http.c:685,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/gateway/http.c:687,15'
          Dst:             strtol
        - Src:             'libfreerdp/core/gateway/http.c:689,9'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/gateway/http.c:695,28'
          Dst:             _strdup
        - Src:             'libfreerdp/core/gateway/http.c:706,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:    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:    print_bio_error
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 980
      functionLinenumberEnd: 988
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          59
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:984,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/http.c:984,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sleep_or_timeout_
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1104
      functionLinenumberEnd: 1133
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          130
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - BIO_test_flags
        - ERR_print_errors_cb
        - USleep
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_shall_disconnect_context
        - print_bio_error
        - winpr_GetTickCount64
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1107,2'
          Dst:             USleep
        - Src:             'libfreerdp/core/gateway/http.c:1108,23'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/gateway/http.c:1112,15'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/gateway/http.c:1113,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/http.c:1114,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/http.c:1118,7'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/gateway/http.c:1121,15'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/gateway/http.c:1122,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/http.c:1124,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/http.c:1125,4'
          Dst:             ERR_print_errors_cb
        - Src:             'libfreerdp/core/gateway/http.c:1125,4'
          Dst:             print_bio_error
        - Src:             'libfreerdp/core/gateway/http.c:1129,6'
          Dst:             freerdp_shall_disconnect_context
    - functionName:    ERR_print_errors_cb
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - 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_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    http_context_set_header_va
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1671
      functionLinenumberEnd: 1677
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - HashTable_Insert
        - winpr_vasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1674,2'
          Dst:             winpr_vasprintf
        - Src:             'libfreerdp/core/gateway/http.c:1675,18'
          Dst:             HashTable_Insert
    - functionName:    extract_cookie
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1624
      functionLinenumberEnd: 1633
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          69
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - http_context_set_cookie
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1629,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1630,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1631,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1633,9'
          Dst:             http_context_set_cookie
    - functionName:    http_context_set_cookie
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          88
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - ListDictionary_Add
        - ListDictionary_Contains
        - ListDictionary_SetItemValue
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:358,6'
          Dst:             ListDictionary_Contains
        - Src:             'libfreerdp/core/gateway/http.c:360,8'
          Dst:             ListDictionary_SetItemValue
        - Src:             'libfreerdp/core/gateway/http.c:365,8'
          Dst:             ListDictionary_Add
    - functionName:    http_response_extract_cookies
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1637
      functionLinenumberEnd: 1641
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          47
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - HashTable_Foreach
        - extract_cookie
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1638,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1639,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1641,9'
          Dst:             HashTable_Foreach
        - Src:             'libfreerdp/core/gateway/http.c:1641,9'
          Dst:             extract_cookie
    - functionName:    http_response_print
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 912
      functionLinenumberEnd: 940
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          162
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_http_status_string_format
        - http_response_get_status_code
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:915,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:916,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:918,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/http.c:921,22'
          Dst:             http_response_get_status_code
        - Src:             'libfreerdp/core/gateway/http.c:923,24'
          Dst:             freerdp_http_status_string_format
        - Src:             'libfreerdp/core/gateway/http.c:922,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/http.c:925,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/http.c:928,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/http.c:933,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/http.c:935,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/http.c:937,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    http_response_get_status_code
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1518
      functionLinenumberEnd: 1521
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1519,2'
          Dst:             winpr_int_assert
    - functionName:    http_response_log_error_status_
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1609
      functionLinenumberEnd: 1621
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          84
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_http_status_string_format
        - http_response_get_status_code
        - http_response_print
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1610,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1611,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1613,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/http.c:1617,24'
          Dst:             http_response_get_status_code
        - Src:             'libfreerdp/core/gateway/http.c:1619,24'
          Dst:             freerdp_http_status_string_format
        - Src:             'libfreerdp/core/gateway/http.c:1618,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/http.c:1620,2'
          Dst:             http_response_print
    - functionName:    http_response_is_websocket
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1556
      functionLinenumberEnd: 1605
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          186
      EdgeCount:       50
      CyclomaticComplexity: 16
      functionsReached:
        - WLog_Print_dbg_tag
        - _stricmp
        - crypto_base64_encode
        - strlen
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_New
        - winpr_Digest_Update
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1568,39'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/gateway/http.c:1576,9'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/gateway/http.c:1580,7'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/gateway/http.c:1583,63'
          Dst:             strlen
        - Src:             'libfreerdp/core/gateway/http.c:1583,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/gateway/http.c:1585,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/gateway/http.c:1588,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/gateway/http.c:1591,17'
          Dst:             crypto_base64_encode
        - Src:             'libfreerdp/core/gateway/http.c:1595,6'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/gateway/http.c:1597,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/http.c:1602,2'
          Dst:             winpr_Digest_Free
    - functionName:    http_response_get_transfer_encoding
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1548
      functionLinenumberEnd: 1553
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    http_response_get_setcookie
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1540
      functionLinenumberEnd: 1545
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - HashTable_GetItemValue
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1544,9'
          Dst:             HashTable_GetItemValue
    - functionName:    http_response_get_auth_token
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1532
      functionLinenumberEnd: 1537
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - HashTable_GetItemValue
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1536,9'
          Dst:             HashTable_GetItemValue
    - functionName:    http_response_get_body_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1525
      functionLinenumberEnd: 1528
      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:             'libfreerdp/core/gateway/http.c:1526,2'
          Dst:             winpr_int_assert
    - functionName:    http_request_set_content_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1509
      functionLinenumberEnd: 1515
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    http_request_get_content_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1501
      functionLinenumberEnd: 1506
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    http_request_get_uri
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1493
      functionLinenumberEnd: 1498
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    http_response_get_body
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1421
      functionLinenumberEnd: 1426
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    http_response_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1477
      functionLinenumberEnd: 1490
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - HashTable_Free
        - Stream_Free
        - clear_lines
      functionUses:    25
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1481,2'
          Dst:             clear_lines
        - Src:             'libfreerdp/core/gateway/http.c:1486,2'
          Dst:             HashTable_Free
        - Src:             'libfreerdp/core/gateway/http.c:1487,2'
          Dst:             HashTable_Free
        - Src:             'libfreerdp/core/gateway/http.c:1488,2'
          Dst:             Stream_Free
    - functionName:    clear_lines
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1296
      functionLinenumberEnd: 1309
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          80
      EdgeCount:       20
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1297,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1301,3'
          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:    http_response_recv_body
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1195
      functionLinenumberEnd: 1292
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         97
      ICount:          474
      EdgeCount:       119
      CyclomaticComplexity: 24
      functionsReached:
        - BIO_read
        - ERR_clear_error
        - Stream_Buffer
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_GetRemainingCapacity
        - Stream_Pointer
        - Stream_Seek
        - Stream_Write_UINT16_unchecked
        - WLog_Print_dbg_tag
        - freerdp_settings_get_uint32
        - http_chuncked_read
        - sleep_or_timeout_
        - winpr_GetTickCount64
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1198,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1199,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1201,25'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/gateway/http.c:1203,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/gateway/http.c:1214,9'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/http.c:1217,46'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gateway/http.c:1218,36'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/core/gateway/http.c:1217,17'
          Dst:             http_chuncked_read
        - Src:             'libfreerdp/core/gateway/http.c:1221,9'
          Dst:             sleep_or_timeout_
        - Src:             'libfreerdp/core/gateway/http.c:1226,5'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/gateway/http.c:1229,8'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/http.c:1231,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/http.c:1235,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1235,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1237,30'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/http.c:1245,9'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/http.c:1248,4'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/gateway/http.c:1252,32'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gateway/http.c:1252,13'
          Dst:             BIO_read
        - Src:             'libfreerdp/core/gateway/http.c:1256,9'
          Dst:             sleep_or_timeout_
        - Src:             'libfreerdp/core/gateway/http.c:1261,4'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/gateway/http.c:1266,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/http.c:1273,30'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/http.c:1277,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/http.c:1285,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/http.c:1287,3'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    http_chuncked_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 992
      functionLinenumberEnd: 1098
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         122
      ICount:          543
      EdgeCount:       142
      CyclomaticComplexity: 22
      functionsReached:
        - BIO_read
        - ERR_clear_error
        - WLog_Print_dbg_tag
        - __errno_location
        - strtoul
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/http.c:1001,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:995,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:996,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:997,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:998,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1010,5'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/gateway/http.c:1011,14'
          Dst:             BIO_read
        - Src:             'libfreerdp/core/gateway/http.c:1015,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1015,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1033,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1034,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1035,5'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/gateway/http.c:1036,14'
          Dst:             BIO_read
        - Src:             'libfreerdp/core/gateway/http.c:1054,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1057,6'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/gateway/http.c:1058,15'
          Dst:             BIO_read
        - Src:             'libfreerdp/core/gateway/http.c:1072,5'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/gateway/http.c:1073,18'
          Dst:             strtoul
        - Src:             'libfreerdp/core/gateway/http.c:1074,10'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/gateway/http.c:1086,6'
          Dst:             WLog_Print_dbg_tag
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    http_use_content_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 943
      functionLinenumberEnd: 977
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          119
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - _strnicmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/http.c:962,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:949,6'
          Dst:             _strnicmp
        - Src:             'libfreerdp/core/gateway/http.c:951,11'
          Dst:             _strnicmp
        - Src:             'libfreerdp/core/gateway/http.c:953,11'
          Dst:             _strnicmp
        - Src:             'libfreerdp/core/gateway/http.c:955,11'
          Dst:             _strnicmp
    - functionName:    http_response_parse_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 832
      functionLinenumberEnd: 908
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         52
      ICount:          269
      EdgeCount:       69
      CyclomaticComplexity: 19
      functionsReached:
        - WLog_Print_dbg_tag
        - http_response_parse_header_field
        - http_response_parse_header_status_line
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:847,7'
          Dst:             http_response_parse_header_status_line
        - Src:             'libfreerdp/core/gateway/http.c:864,16'
          Dst:             strchr
        - Src:             'libfreerdp/core/gateway/http.c:895,19'
          Dst:             http_response_parse_header_field
        - Src:             'libfreerdp/core/gateway/http.c:905,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    http_response_recv_line
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1136
      functionLinenumberEnd: 1190
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         57
      ICount:          248
      EdgeCount:       68
      CyclomaticComplexity: 13
      functionsReached:
        - BIO_read
        - ERR_clear_error
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Pointer
        - Stream_Seek
        - WLog_Print_dbg_tag
        - freerdp_settings_get_uint32
        - sleep_or_timeout_
        - winpr_GetTickCount64
        - winpr_int_assert
        - winpr_strnstr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1137,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1138,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1142,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/gateway/http.c:1143,25'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/gateway/http.c:1152,3'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/gateway/http.c:1154,31'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gateway/http.c:1154,12'
          Dst:             BIO_read
        - Src:             'libfreerdp/core/gateway/http.c:1157,8'
          Dst:             sleep_or_timeout_
        - Src:             'libfreerdp/core/gateway/http.c:1165,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/gateway/http.c:1167,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/http.c:1170,14'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/http.c:1176,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/http.c:1183,16'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gateway/http.c:1185,7'
          Dst:             winpr_strnstr
        - Src:             'libfreerdp/core/gateway/http.c:1186,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/http.c:1186,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1186,20'
          Dst:             winpr_int_assert
    - functionName:    http_response_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1445
      functionLinenumberEnd: 1474
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          76
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - HashTable_New_String
        - Stream_New
        - calloc
        - http_response_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1446,42'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/http.c:1451,28'
          Dst:             HashTable_New_String
        - Src:             'libfreerdp/core/gateway/http.c:1456,24'
          Dst:             HashTable_New_String
        - Src:             'libfreerdp/core/gateway/http.c:1461,19'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/http.c:1471,2'
          Dst:             http_response_free
    - functionName:    HashTable_New_String
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1429
      functionLinenumberEnd: 1442
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - HashTable_Free
        - HashTable_KeyObject
        - HashTable_New
        - HashTable_SetupForStringData
        - HashTable_ValueObject
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1430,22'
          Dst:             HashTable_New
        - Src:             'libfreerdp/core/gateway/http.c:1434,7'
          Dst:             HashTable_SetupForStringData
        - Src:             'libfreerdp/core/gateway/http.c:1436,3'
          Dst:             HashTable_Free
        - Src:             'libfreerdp/core/gateway/http.c:1439,2'
          Dst:             HashTable_KeyObject
        - Src:             'libfreerdp/core/gateway/http.c:1440,2'
          Dst:             HashTable_ValueObject
    - functionName:    strings_equals_nocase
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _stricmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:105,9'
          Dst:             _stricmp
    - functionName:    http_response_recv
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1312
      functionLinenumberEnd: 1418
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         151
      ICount:          624
      EdgeCount:       181
      CyclomaticComplexity: 32
      functionsReached:
        - Stream_Buffer
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_SealLength
        - Stream_Write_UINT16_unchecked
        - WLog_Print_dbg_tag
        - _strdup
        - calloc
        - clear_lines
        - http_response_free
        - http_response_new
        - http_response_parse_header
        - http_response_recv_body
        - http_response_recv_line
        - http_use_content_length
        - strchr
        - strtok_s
        - winpr_int_assert
        - winpr_strnstr
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1314,27'
          Dst:             http_response_new
        - Src:             'libfreerdp/core/gateway/http.c:1321,32'
          Dst:             http_response_recv_line
        - Src:             'libfreerdp/core/gateway/http.c:1328,18'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/http.c:1329,16'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/http.c:1333,32'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1333,32'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1334,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1334,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1332,18'
          Dst:             winpr_strnstr
        - Src:             'libfreerdp/core/gateway/http.c:1340,3'
          Dst:             clear_lines
        - Src:             'libfreerdp/core/gateway/http.c:1345,30'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/http.c:1354,10'
          Dst:             strtok_s
        - Src:             'libfreerdp/core/gateway/http.c:1358,29'
          Dst:             _strdup
        - Src:             'libfreerdp/core/gateway/http.c:1361,11'
          Dst:             strtok_s
        - Src:             'libfreerdp/core/gateway/http.c:1365,8'
          Dst:             http_response_parse_header
        - Src:             'libfreerdp/core/gateway/http.c:1369,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/http.c:1369,44'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1369,44'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1371,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1380,9'
          Dst:             http_use_content_length
        - Src:             'libfreerdp/core/gateway/http.c:1390,11'
          Dst:             strchr
        - Src:             'libfreerdp/core/gateway/http.c:1396,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/http.c:1403,32'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1403,32'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1402,8'
          Dst:             http_response_recv_body
        - Src:             'libfreerdp/core/gateway/http.c:1406,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/http.c:1409,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/http.c:1411,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gateway/http.c:1415,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/http.c:1416,2'
          Dst:             http_response_free
    - functionName:    http_request_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 659
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - HashTable_Free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:657,2'
          Dst:             HashTable_Free
    - functionName:    http_request_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 632
      functionLinenumberEnd: 645
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - HashTable_New_String
        - calloc
        - http_request_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:633,39'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/http.c:637,21'
          Dst:             HashTable_New_String
        - Src:             'libfreerdp/core/gateway/http.c:643,2'
          Dst:             http_request_free
    - functionName:    http_encode_print
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          96
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Pointer
        - Stream_Seek
        - vsnprintf
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:452,11'
          Dst:             vsnprintf
        - Src:             'libfreerdp/core/gateway/http.c:455,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/http.c:458,15'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gateway/http.c:460,9'
          Dst:             vsnprintf
        - Src:             'libfreerdp/core/gateway/http.c:467,2'
          Dst:             Stream_Seek
    - functionName:    http_encode_cookie_line
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          154
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - ListDictionary_GetItemValue
        - ListDictionary_GetKeys
        - ListDictionary_Lock
        - ListDictionary_Unlock
        - http_encode_print
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:509,2'
          Dst:             ListDictionary_Lock
        - Src:             'libfreerdp/core/gateway/http.c:510,23'
          Dst:             ListDictionary_GetKeys
        - Src:             'libfreerdp/core/gateway/http.c:515,11'
          Dst:             http_encode_print
        - Src:             'libfreerdp/core/gateway/http.c:521,22'
          Dst:             ListDictionary_GetItemValue
        - Src:             'libfreerdp/core/gateway/http.c:529,13'
          Dst:             http_encode_print
        - Src:             'libfreerdp/core/gateway/http.c:533,12'
          Dst:             http_encode_print
        - Src:             'libfreerdp/core/gateway/http.c:536,11'
          Dst:             http_encode_print
        - Src:             'libfreerdp/core/gateway/http.c:539,2'
          Dst:             ListDictionary_Unlock
    - functionName:    write_headers
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          69
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - http_encode_body_line
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:549,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:550,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:551,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:553,9'
          Dst:             http_encode_body_line
    - functionName:    http_encode_body_line
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 477
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          51
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - http_encode_print
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:476,9'
          Dst:             http_encode_print
    - functionName:    http_encode_authorization_line
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          51
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - http_encode_print
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:498,9'
          Dst:             http_encode_print
    - functionName:    http_encode_content_length_line
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - http_encode_print
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:481,9'
          Dst:             http_encode_print
    - functionName:    http_encode_header_line
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          51
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - http_encode_print
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:489,9'
          Dst:             http_encode_print
    - functionName:    http_request_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 557
      functionLinenumberEnd: 629
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         61
      ICount:          306
      EdgeCount:       85
      CyclomaticComplexity: 26
      functionsReached:
        - HashTable_Foreach
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - http_encode_authorization_line
        - http_encode_body_line
        - http_encode_content_length_line
        - http_encode_cookie_line
        - http_encode_header_line
        - http_encode_print
        - utils_str_is_empty
        - write_headers
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:561,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/http.c:566,7'
          Dst:             http_encode_header_line
        - Src:             'libfreerdp/core/gateway/http.c:568,7'
          Dst:             http_encode_body_line
        - Src:             'libfreerdp/core/gateway/http.c:573,8'
          Dst:             http_encode_body_line
        - Src:             'libfreerdp/core/gateway/http.c:578,8'
          Dst:             http_encode_body_line
        - Src:             'libfreerdp/core/gateway/http.c:579,8'
          Dst:             http_encode_body_line
        - Src:             'libfreerdp/core/gateway/http.c:580,8'
          Dst:             http_encode_body_line
        - Src:             'libfreerdp/core/gateway/http.c:581,8'
          Dst:             http_encode_body_line
        - Src:             'libfreerdp/core/gateway/http.c:589,9'
          Dst:             http_encode_body_line
        - Src:             'libfreerdp/core/gateway/http.c:597,8'
          Dst:             http_encode_content_length_line
        - Src:             'libfreerdp/core/gateway/http.c:601,7'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/gateway/http.c:603,8'
          Dst:             http_encode_body_line
        - Src:             'libfreerdp/core/gateway/http.c:606,12'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/gateway/http.c:606,56'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/gateway/http.c:608,8'
          Dst:             http_encode_authorization_line
        - Src:             'libfreerdp/core/gateway/http.c:612,7'
          Dst:             HashTable_Foreach
        - Src:             'libfreerdp/core/gateway/http.c:612,7'
          Dst:             write_headers
        - Src:             'libfreerdp/core/gateway/http.c:615,7'
          Dst:             HashTable_Foreach
        - Src:             'libfreerdp/core/gateway/http.c:615,7'
          Dst:             write_headers
        - Src:             'libfreerdp/core/gateway/http.c:618,7'
          Dst:             http_encode_cookie_line
        - Src:             'libfreerdp/core/gateway/http.c:621,7'
          Dst:             http_encode_print
        - Src:             'libfreerdp/core/gateway/http.c:624,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/http.c:627,2'
          Dst:             Stream_Free
    - functionName:    http_request_set_transfer_encoding
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          36
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    http_request_set_auth_param
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _strdup
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:425,23'
          Dst:             _strdup
    - functionName:    http_request_set_auth_scheme
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _strdup
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:414,24'
          Dst:             _strdup
    - functionName:    http_request_set_uri
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _strdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:403,17'
          Dst:             _strdup
    - functionName:    http_request_set_method
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _strdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:392,20'
          Dst:             _strdup
    - functionName:    http_context_set_rdg_auth_scheme
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - http_context_set_header
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:351,9'
          Dst:             http_context_set_header
    - functionName:    http_context_set_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1646
      functionLinenumberEnd: 1652
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - http_context_set_header_va
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1647,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1650,18'
          Dst:             http_context_set_header_va
    - functionName:    http_context_is_websocket_upgrade_enabled
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    http_context_enable_websocket_upgrade
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          76
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - UuidCreate
        - crypto_base64_encode
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:323,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:328,19'
          Dst:             UuidCreate
        - Src:             'libfreerdp/core/gateway/http.c:332,30'
          Dst:             crypto_base64_encode
    - functionName:    http_context_set_rdg_correlation_id
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - guid2str
        - http_context_set_header
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:318,33'
          Dst:             guid2str
        - Src:             'libfreerdp/core/gateway/http.c:317,9'
          Dst:             http_context_set_header
    - functionName:    http_context_set_rdg_connection_id
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 298
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - UuidCreate
        - guid2str
        - http_context_set_header
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:303,6'
          Dst:             UuidCreate
        - Src:             'libfreerdp/core/gateway/http.c:308,33'
          Dst:             guid2str
        - Src:             'libfreerdp/core/gateway/http.c:307,9'
          Dst:             http_context_set_header
    - functionName:    http_context_append_pragma
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - list_append
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:294,9'
          Dst:             list_append
    - functionName:    list_append
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          83
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_asprintf
        - winpr_vasprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:243,19'
          Dst:             winpr_vasprintf
        - Src:             'libfreerdp/core/gateway/http.c:254,4'
          Dst:             winpr_asprintf
    - functionName:    http_context_set_pragma
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - list_append
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:283,9'
          Dst:             list_append
    - functionName:    http_context_set_connection
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _strdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:229,24'
          Dst:             _strdup
    - functionName:    http_context_set_cache_control
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - http_context_set_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:220,9'
          Dst:             http_context_set_header
    - functionName:    http_context_set_accept
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - http_context_set_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:212,9'
          Dst:             http_context_set_header
    - functionName:    http_context_set_host
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - http_context_set_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:204,9'
          Dst:             http_context_set_header
    - functionName:    http_context_set_x_ms_user_agent
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - http_context_set_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:196,9'
          Dst:             http_context_set_header
    - functionName:    http_context_set_user_agent
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - http_context_set_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:188,9'
          Dst:             http_context_set_header
    - functionName:    http_context_set_uri
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _strdup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:178,17'
          Dst:             _strdup
    - functionName:    http_context_get_uri
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    http_request_set_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1656
      functionLinenumberEnd: 1666
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - HashTable_Insert
        - winpr_int_assert
        - winpr_vasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:1657,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/http.c:1662,2'
          Dst:             winpr_vasprintf
        - Src:             'libfreerdp/core/gateway/http.c:1664,18'
          Dst:             HashTable_Insert
    - functionName:    http_request_set_content_type
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - http_request_set_header
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:161,9'
          Dst:             http_request_set_header
    - functionName:    http_context_set_method
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:151,20'
          Dst:             _strdup
    - functionName:    http_context_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - HashTable_Free
        - ListDictionary_Free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:380,3'
          Dst:             HashTable_Free
        - Src:             'libfreerdp/core/gateway/http.c:381,3'
          Dst:             ListDictionary_Free
    - functionName:    http_context_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         16
      ICount:          102
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - HashTable_New_String
        - ListDictionary_KeyObject
        - ListDictionary_New
        - ListDictionary_ValueObject
        - calloc
        - http_context_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/http.c:110,39'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/http.c:114,21'
          Dst:             HashTable_New_String
        - Src:             'libfreerdp/core/gateway/http.c:118,21'
          Dst:             ListDictionary_New
        - Src:             'libfreerdp/core/gateway/http.c:123,18'
          Dst:             ListDictionary_KeyObject
        - Src:             'libfreerdp/core/gateway/http.c:124,20'
          Dst:             ListDictionary_ValueObject
        - Src:             'libfreerdp/core/gateway/http.c:140,2'
          Dst:             http_context_free
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    websocket_reply_close
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - websocket_context_write_wstream
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/websocket.c:272,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:274,9'
          Dst:             websocket_context_write_wstream
    - functionName:    websocket_context_write_wstream
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          112
      EdgeCount:       32
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Length
        - websocket_context_mask_and_send
        - websocket_context_packet_new
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/websocket.c:128,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:136,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:137,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:139,21'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/websocket.c:141,17'
          Dst:             websocket_context_packet_new
        - Src:             'libfreerdp/core/gateway/websocket.c:145,9'
          Dst:             websocket_context_mask_and_send
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1325,3'
          Dst:             winpr_int_assert
    - functionName:    websocket_context_packet_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         128
      ICount:          342
      EdgeCount:       135
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_New
        - Stream_Write_UINT16_BE_unchecked
        - Stream_Write_UINT32_BE_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_RAND
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/websocket.c:86,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:99,6'
          Dst:             winpr_RAND
        - Src:             'libfreerdp/core/gateway/websocket.c:102,17'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/websocket.c:106,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:106,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:106,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/websocket.c:108,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:108,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:108,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/websocket.c:111,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/websocket.c:112,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:112,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:112,3'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'libfreerdp/core/gateway/websocket.c:116,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/websocket.c:117,3'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'libfreerdp/core/gateway/websocket.c:118,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:118,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:118,3'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'libfreerdp/core/gateway/websocket.c:120,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:120,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:120,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    websocket_context_mask_and_send
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          207
      EdgeCount:       51
      CyclomaticComplexity: 6
      functionsReached:
        - ERR_clear_error
        - Stream_Buffer
        - Stream_EnsureRemainingCapacity
        - Stream_Free
        - Stream_Get_UINT32
        - Stream_Length
        - Stream_ResetPosition
        - Stream_SealLength
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - stream_read_u8
        - websocket_write_all
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/websocket.c:51,21'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/websocket.c:52,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/gateway/websocket.c:54,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/websocket.c:61,25'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gateway/websocket.c:62,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:62,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:62,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gateway/websocket.c:70,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gateway/websocket.c:71,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:71,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:71,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gateway/websocket.c:74,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/gateway/websocket.c:76,2'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/gateway/websocket.c:77,22'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/websocket.c:78,46'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/websocket.c:78,21'
          Dst:             websocket_write_all
        - Src:             'libfreerdp/core/gateway/websocket.c:79,2'
          Dst:             Stream_Free
    - functionName:    Stream_ResetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1358,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Get_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:413,10'
          Dst:             stream_read_u32_le
    - 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:    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:    1
      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_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_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    websocket_write_all
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          145
      EdgeCount:       41
      CyclomaticComplexity: 9
      functionsReached:
        - BIO_read_blocked
        - BIO_test_flags
        - BIO_wait_write
        - BIO_write
        - BIO_write_blocked
        - ERR_clear_error
        - USleep
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/websocket.c:150,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:151,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:159,3'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/gateway/websocket.c:161,16'
          Dst:             BIO_write
        - Src:             'libfreerdp/core/gateway/websocket.c:167,9'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/gateway/websocket.c:170,8'
          Dst:             BIO_write_blocked
        - Src:             'libfreerdp/core/gateway/websocket.c:172,26'
          Dst:             BIO_wait_write
        - Src:             'libfreerdp/core/gateway/websocket.c:176,13'
          Dst:             BIO_read_blocked
        - Src:             'libfreerdp/core/gateway/websocket.c:179,5'
          Dst:             USleep
    - functionName:    BIO_write_blocked
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:92,9'
          Dst:             BIO_ctrl
    - functionName:    BIO_wait_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:103,9'
          Dst:             BIO_ctrl
    - functionName:    BIO_read_blocked
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:86,9'
          Dst:             BIO_ctrl
    - 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_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:    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:    2
      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_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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:236,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:    1
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:114,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:    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:    2
      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:    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:    websocket_reply_pong
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          65
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetPosition
        - websocket_context_write_wstream
        - websocket_reply_close
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/websocket.c:279,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:282,6'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gateway/websocket.c:283,10'
          Dst:             websocket_context_write_wstream
        - Src:             'libfreerdp/core/gateway/websocket.c:285,9'
          Dst:             websocket_reply_close
    - functionName:    websocket_read_wstream
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          128
      EdgeCount:       34
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetRemainingCapacity
        - Stream_Pointer
        - Stream_SafeSeekEx
        - WLog_Print_dbg_tag
        - websocket_read_data
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/websocket.c:239,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:240,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:243,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:251,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gateway/websocket.c:253,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/core/gateway/websocket.c:253,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/websocket.c:259,46'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gateway/websocket.c:259,65'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/core/gateway/websocket.c:259,21'
          Dst:             websocket_read_data
        - Src:             'libfreerdp/core/gateway/websocket.c:264,7'
          Dst:             Stream_SafeSeekEx
    - 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:    websocket_read_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          161
      EdgeCount:       43
      CyclomaticComplexity: 8
      functionsReached:
        - BIO_read
        - ERR_clear_error
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/websocket.c:209,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:210,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:211,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:224,2'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/gateway/websocket.c:225,11'
          Dst:             BIO_read
    - functionName:    Stream_Reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Capacity
        - Stream_ResetPosition
        - Stream_SetLength
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/websocket.c:42,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/gateway/websocket.c:43,29'
          Dst:             Stream_Capacity
        - Src:             'libfreerdp/core/gateway/websocket.c:43,9'
          Dst:             Stream_SetLength
    - functionName:    Stream_Capacity
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1336
      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:1335,3'
          Dst:             winpr_int_assert
    - functionName:    websocket_context_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/websocket.c:498,2'
          Dst:             Stream_Free
    - functionName:    websocket_context_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Reset
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/websocket.c:504,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:507,9'
          Dst:             Stream_Reset
    - functionName:    websocket_context_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          55
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_New
        - calloc
        - websocket_context_free
        - websocket_context_reset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/websocket.c:476,31'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/websocket.c:480,34'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/gateway/websocket.c:484,7'
          Dst:             websocket_context_reset
        - Src:             'libfreerdp/core/gateway/websocket.c:489,2'
          Dst:             websocket_context_free
    - functionName:    websocket_handle_payload
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          278
      EdgeCount:       66
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_Reset
        - WLog_Print_dbg_tag
        - websocket_read_data
        - websocket_read_wstream
        - websocket_reply_close
        - websocket_reply_pong
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/websocket.c:301,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/websocket.c:293,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:294,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:295,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:305,13'
          Dst:             websocket_read_data
        - Src:             'libfreerdp/core/gateway/websocket.c:313,13'
          Dst:             websocket_read_wstream
        - Src:             'libfreerdp/core/gateway/websocket.c:319,5'
          Dst:             websocket_reply_pong
        - Src:             'libfreerdp/core/gateway/websocket.c:320,10'
          Dst:             Stream_Reset
        - Src:             'libfreerdp/core/gateway/websocket.c:327,13'
          Dst:             websocket_read_wstream
        - Src:             'libfreerdp/core/gateway/websocket.c:331,9'
          Dst:             Stream_Reset
        - Src:             'libfreerdp/core/gateway/websocket.c:337,13'
          Dst:             websocket_read_wstream
        - Src:             'libfreerdp/core/gateway/websocket.c:343,5'
          Dst:             websocket_reply_close
        - Src:             'libfreerdp/core/gateway/websocket.c:345,10'
          Dst:             Stream_Reset
        - Src:             'libfreerdp/core/gateway/websocket.c:351,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/websocket.c:353,13'
          Dst:             websocket_read_wstream
        - Src:             'libfreerdp/core/gateway/websocket.c:356,9'
          Dst:             Stream_Reset
    - functionName:    websocket_context_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         259
      ICount:          1045
      EdgeCount:       300
      CyclomaticComplexity: 43
      functionsReached:
        - BIO_read
        - ERR_clear_error
        - WLog_Print_dbg_tag
        - websocket_handle_payload
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/websocket.c:376,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/websocket.c:370,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:371,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:372,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:382,5'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/gateway/websocket.c:383,14'
          Dst:             BIO_read
        - Src:             'libfreerdp/core/gateway/websocket.c:385,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:385,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:399,5'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/gateway/websocket.c:400,14'
          Dst:             BIO_read
        - Src:             'libfreerdp/core/gateway/websocket.c:402,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:402,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:429,6'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/gateway/websocket.c:430,15'
          Dst:             BIO_read
        - Src:             'libfreerdp/core/gateway/websocket.c:433,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:433,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:440,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:440,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:448,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/websocket.c:454,14'
          Dst:             websocket_handle_payload
        - Src:             'libfreerdp/core/gateway/websocket.c:456,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:456,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:459,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:459,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:461,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:461,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:462,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:462,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:464,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:464,13'
          Dst:             winpr_int_assert
    - functionName:    websocket_context_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          95
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Capacity
        - Stream_SetLength
        - Stream_StaticConstInit
        - websocket_context_write_wstream
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/websocket.c:189,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:190,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/websocket.c:196,15'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/core/gateway/websocket.c:197,27'
          Dst:             Stream_Capacity
        - Src:             'libfreerdp/core/gateway/websocket.c:197,7'
          Dst:             Stream_SetLength
        - Src:             'libfreerdp/core/gateway/websocket.c:199,7'
          Dst:             websocket_context_write_wstream
    - functionName:    BIO_wait_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:103,9'
          Dst:             BIO_ctrl
    - functionName:    BIO_wait_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:97,9'
          Dst:             BIO_ctrl
    - functionName:    BIO_write_blocked
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:92,9'
          Dst:             BIO_ctrl
    - functionName:    BIO_read_blocked
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:86,9'
          Dst:             BIO_ctrl
    - functionName:    wst_bio_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 765
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    wst_bio_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 758
      functionLinenumberEnd: 761
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_set_flags
        - BIO_set_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:759,2'
          Dst:             BIO_set_init
        - Src:             'libfreerdp/core/gateway/wst.c:760,2'
          Dst:             BIO_set_flags
    - functionName:    wst_bio_ctrl
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 755
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          206
      EdgeCount:       55
      CyclomaticComplexity: 12
      functionsReached:
        - BIO_ctrl
        - BIO_get_data
        - BIO_read_blocked
        - BIO_wait_read
        - BIO_wait_write
        - BIO_write_blocked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:693,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:695,25'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/gateway/wst.c:696,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:701,9'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/core/gateway/wst.c:710,12'
          Dst:             BIO_read_blocked
        - Src:             'libfreerdp/core/gateway/wst.c:714,12'
          Dst:             BIO_write_blocked
        - Src:             'libfreerdp/core/gateway/wst.c:720,7'
          Dst:             BIO_read_blocked
        - Src:             'libfreerdp/core/gateway/wst.c:721,11'
          Dst:             BIO_wait_read
        - Src:             'libfreerdp/core/gateway/wst.c:728,7'
          Dst:             BIO_write_blocked
        - Src:             'libfreerdp/core/gateway/wst.c:729,13'
          Dst:             BIO_wait_write
        - Src:             'libfreerdp/core/gateway/wst.c:735,12'
          Dst:             BIO_ctrl
    - functionName:    wst_bio_gets
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 683
      functionLinenumberEnd: 687
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    wst_bio_puts
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 675
      functionLinenumberEnd: 678
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    wst_bio_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 635
      functionLinenumberEnd: 672
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          151
      EdgeCount:       46
      CyclomaticComplexity: 7
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - BIO_set_flags
        - BIO_test_flags
        - WSASetLastError
        - websocket_context_read
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:637,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:638,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:639,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:641,25'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/gateway/wst.c:642,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:646,12'
          Dst:             websocket_context_read
        - Src:             'libfreerdp/core/gateway/wst.c:649,9'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/gateway/wst.c:657,3'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/gateway/wst.c:662,3'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/gateway/wst.c:663,3'
          Dst:             WSASetLastError
        - Src:             'libfreerdp/core/gateway/wst.c:668,3'
          Dst:             BIO_set_flags
    - functionName:    wst_bio_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 603
      functionLinenumberEnd: 632
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          117
      EdgeCount:       30
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - BIO_set_flags
        - EnterCriticalSection
        - LeaveCriticalSection
        - WSASetLastError
        - websocket_context_write
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:605,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:606,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:608,25'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/gateway/wst.c:609,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:610,2'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/gateway/wst.c:611,2'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/gateway/wst.c:612,11'
          Dst:             websocket_context_write
        - Src:             'libfreerdp/core/gateway/wst.c:614,2'
          Dst:             LeaveCriticalSection
        - Src:             'libfreerdp/core/gateway/wst.c:618,3'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/gateway/wst.c:623,3'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/gateway/wst.c:624,3'
          Dst:             WSASetLastError
        - Src:             'libfreerdp/core/gateway/wst.c:628,3'
          Dst:             BIO_set_flags
    - functionName:    wst_get_gateway_credentials
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          98
      EdgeCount:       25
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_set_last_error_ex
        - utils_authenticate_gateway
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/wst.c:93,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:89,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:92,19'
          Dst:             utils_authenticate_gateway
        - Src:             'libfreerdp/core/gateway/wst.c:99,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/wst.c:102,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/wst.c:102,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    wst_recv_auth_token
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          137
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - credssp_auth_authenticate
        - credssp_auth_pkg_name
        - credssp_auth_take_input_buffer
        - crypto_base64_decode
        - http_response_get_auth_token
        - http_response_get_status_code
        - http_response_log_error_status_
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/wst.c:188,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:187,28'
          Dst:             http_response_get_status_code
        - Src:             'libfreerdp/core/gateway/wst.c:194,4'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/gateway/wst.c:194,4'
          Dst:             http_response_log_error_status_
        - Src:             'libfreerdp/core/gateway/wst.c:198,63'
          Dst:             credssp_auth_pkg_name
        - Src:             'libfreerdp/core/gateway/wst.c:198,24'
          Dst:             http_response_get_auth_token
        - Src:             'libfreerdp/core/gateway/wst.c:203,8'
          Dst:             strlen
        - Src:             'libfreerdp/core/gateway/wst.c:205,2'
          Dst:             crypto_base64_decode
        - Src:             'libfreerdp/core/gateway/wst.c:211,3'
          Dst:             credssp_auth_take_input_buffer
        - Src:             'libfreerdp/core/gateway/wst.c:216,7'
          Dst:             credssp_auth_authenticate
    - functionName:    wst_auth_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          165
      EdgeCount:       38
      CyclomaticComplexity: 7
      functionsReached:
        - credssp_auth_authenticate
        - credssp_auth_init
        - credssp_auth_set_flags
        - credssp_auth_setup_client
        - freerdp_settings_get_string
        - identity_set_from_settings
        - sspi_FreeAuthIdentity
        - winpr_int_assert
        - wst_get_gateway_credentials
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:112,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:113,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:114,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:122,7'
          Dst:             credssp_auth_init
        - Src:             'libfreerdp/core/gateway/wst.c:125,7'
          Dst:             wst_get_gateway_credentials
        - Src:             'libfreerdp/core/gateway/wst.c:128,7'
          Dst:             identity_set_from_settings
        - Src:             'libfreerdp/core/gateway/wst.c:132,32'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/wst.c:134,7'
          Dst:             credssp_auth_setup_client
        - Src:             'libfreerdp/core/gateway/wst.c:136,3'
          Dst:             sspi_FreeAuthIdentity
        - Src:             'libfreerdp/core/gateway/wst.c:139,2'
          Dst:             sspi_FreeAuthIdentity
        - Src:             'libfreerdp/core/gateway/wst.c:141,2'
          Dst:             credssp_auth_set_flags
        - Src:             'libfreerdp/core/gateway/wst.c:143,7'
          Dst:             credssp_auth_authenticate
    - functionName:    wst_uri_has_clmtk_bearer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          55
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - _strnicmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:81,7'
          Dst:             _strnicmp
    - functionName:    wst_set_auth_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          126
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - credssp_auth_get_output_buffer
        - credssp_auth_pkg_name
        - crypto_base64_encode
        - http_request_set_auth_param
        - http_request_set_auth_scheme
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:149,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:150,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:152,31'
          Dst:             credssp_auth_get_output_buffer
        - Src:             'libfreerdp/core/gateway/wst.c:160,21'
          Dst:             crypto_base64_encode
        - Src:             'libfreerdp/core/gateway/wst.c:165,51'
          Dst:             credssp_auth_pkg_name
        - Src:             'libfreerdp/core/gateway/wst.c:165,13'
          Dst:             http_request_set_auth_scheme
        - Src:             'libfreerdp/core/gateway/wst.c:166,13'
          Dst:             http_request_set_auth_param
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:1325,3'
          Dst:             winpr_int_assert
    - functionName:    wst_build_http_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          160
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_SealLength
        - freerdp_settings_get_string
        - http_context_get_uri
        - http_request_free
        - http_request_new
        - http_request_set_auth_param
        - http_request_set_auth_scheme
        - http_request_set_method
        - http_request_set_uri
        - http_request_write
        - wst_set_auth_header
        - wst_uri_has_clmtk_bearer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:308,20'
          Dst:             http_context_get_uri
        - Src:             'libfreerdp/core/gateway/wst.c:309,25'
          Dst:             http_request_new
        - Src:             'libfreerdp/core/gateway/wst.c:314,7'
          Dst:             http_request_set_method
        - Src:             'libfreerdp/core/gateway/wst.c:314,51'
          Dst:             http_request_set_uri
        - Src:             'libfreerdp/core/gateway/wst.c:319,8'
          Dst:             wst_set_auth_header
        - Src:             'libfreerdp/core/gateway/wst.c:322,11'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/wst.c:326,8'
          Dst:             wst_uri_has_clmtk_bearer
        - Src:             'libfreerdp/core/gateway/wst.c:328,9'
          Dst:             http_request_set_auth_scheme
        - Src:             'libfreerdp/core/gateway/wst.c:331,21'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/wst.c:330,9'
          Dst:             http_request_set_auth_param
        - Src:             'libfreerdp/core/gateway/wst.c:337,6'
          Dst:             http_request_write
        - Src:             'libfreerdp/core/gateway/wst.c:339,2'
          Dst:             http_request_free
        - Src:             'libfreerdp/core/gateway/wst.c:342,3'
          Dst:             Stream_SealLength
    - functionName:    BIO_set_nonblock
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:80,9'
          Dst:             BIO_ctrl
    - functionName:    wst_get_front_bio_and_take_ownership
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 946
      functionLinenumberEnd: 952
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    wst_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 925
      functionLinenumberEnd: 943
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_free_all
        - DeleteCriticalSection
        - credssp_auth_free
        - freerdp_tls_free
        - http_context_free
        - websocket_context_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:929,2'
          Dst:             freerdp_tls_free
        - Src:             'libfreerdp/core/gateway/wst.c:930,2'
          Dst:             http_context_free
        - Src:             'libfreerdp/core/gateway/wst.c:931,2'
          Dst:             credssp_auth_free
        - Src:             'libfreerdp/core/gateway/wst.c:936,3'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/core/gateway/wst.c:938,2'
          Dst:             DeleteCriticalSection
        - Src:             'libfreerdp/core/gateway/wst.c:940,2'
          Dst:             websocket_context_free
    - functionName:    BIO_s_wst
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 771
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_meth_new
        - BIO_meth_set_create
        - BIO_meth_set_ctrl
        - BIO_meth_set_destroy
        - BIO_meth_set_gets
        - BIO_meth_set_puts
        - BIO_meth_set_read
        - BIO_meth_set_write
        - wst_bio_ctrl
        - wst_bio_free
        - wst_bio_gets
        - wst_bio_new
        - wst_bio_puts
        - wst_bio_read
        - wst_bio_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:776,23'
          Dst:             BIO_meth_new
        - Src:             'libfreerdp/core/gateway/wst.c:779,3'
          Dst:             BIO_meth_set_write
        - Src:             'libfreerdp/core/gateway/wst.c:779,3'
          Dst:             wst_bio_write
        - Src:             'libfreerdp/core/gateway/wst.c:780,3'
          Dst:             BIO_meth_set_read
        - Src:             'libfreerdp/core/gateway/wst.c:780,3'
          Dst:             wst_bio_read
        - Src:             'libfreerdp/core/gateway/wst.c:781,3'
          Dst:             BIO_meth_set_puts
        - Src:             'libfreerdp/core/gateway/wst.c:781,3'
          Dst:             wst_bio_puts
        - Src:             'libfreerdp/core/gateway/wst.c:782,3'
          Dst:             BIO_meth_set_gets
        - Src:             'libfreerdp/core/gateway/wst.c:782,3'
          Dst:             wst_bio_gets
        - Src:             'libfreerdp/core/gateway/wst.c:783,3'
          Dst:             BIO_meth_set_ctrl
        - Src:             'libfreerdp/core/gateway/wst.c:783,3'
          Dst:             wst_bio_ctrl
        - Src:             'libfreerdp/core/gateway/wst.c:784,3'
          Dst:             BIO_meth_set_create
        - Src:             'libfreerdp/core/gateway/wst.c:784,3'
          Dst:             wst_bio_new
        - Src:             'libfreerdp/core/gateway/wst.c:785,3'
          Dst:             BIO_meth_set_destroy
        - Src:             'libfreerdp/core/gateway/wst.c:785,3'
          Dst:             wst_bio_free
    - functionName:    wst_parse_url
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 850
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         107
      ICount:          479
      EdgeCount:       130
      CyclomaticComplexity: 25
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - _strdup
        - strncmp
        - strncpy
        - strndup
        - strtol
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:795,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:796,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:803,6'
          Dst:             strncmp
        - Src:             'libfreerdp/core/gateway/wst.c:805,7'
          Dst:             strncmp
        - Src:             'libfreerdp/core/gateway/wst.c:807,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/wst.c:807,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/wst.c:824,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:824,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:824,20'
          Dst:             strndup
        - Src:             'libfreerdp/core/gateway/wst.c:838,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:838,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:838,3'
          Dst:             strncpy
        - Src:             'libfreerdp/core/gateway/wst.c:840,13'
          Dst:             strtol
        - Src:             'libfreerdp/core/gateway/wst.c:848,16'
          Dst:             _strdup
    - functionName:    wst_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 853
      functionLinenumberEnd: 922
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          275
      EdgeCount:       57
      CyclomaticComplexity: 19
      functionsReached:
        - BIO_new
        - BIO_s_wst
        - BIO_set_data
        - InitializeCriticalSection
        - WLog_Get
        - calloc
        - credssp_auth_new
        - freerdp_settings_get_string
        - freerdp_tls_new
        - http_context_enable_websocket_upgrade
        - http_context_new
        - http_context_set_accept
        - http_context_set_cache_control
        - http_context_set_connection
        - http_context_set_host
        - http_context_set_pragma
        - http_context_set_uri
        - http_context_set_user_agent
        - http_context_set_x_ms_user_agent
        - websocket_context_new
        - wst_free
        - wst_parse_url
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:857,25'
          Dst:             calloc
        - Src:             'libfreerdp/core/gateway/wst.c:861,13'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/gateway/wst.c:868,27'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/wst.c:869,7'
          Dst:             wst_parse_url
        - Src:             'libfreerdp/core/gateway/wst.c:872,13'
          Dst:             freerdp_tls_new
        - Src:             'libfreerdp/core/gateway/wst.c:876,14'
          Dst:             http_context_new
        - Src:             'libfreerdp/core/gateway/wst.c:883,7'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/wst.c:885,7'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/wst.c:886,8'
          Dst:             http_context_set_uri
        - Src:             'libfreerdp/core/gateway/wst.c:887,8'
          Dst:             http_context_set_accept
        - Src:             'libfreerdp/core/gateway/wst.c:888,8'
          Dst:             http_context_set_cache_control
        - Src:             'libfreerdp/core/gateway/wst.c:889,8'
          Dst:             http_context_set_pragma
        - Src:             'libfreerdp/core/gateway/wst.c:890,8'
          Dst:             http_context_set_connection
        - Src:             'libfreerdp/core/gateway/wst.c:891,8'
          Dst:             http_context_set_user_agent
        - Src:             'libfreerdp/core/gateway/wst.c:892,8'
          Dst:             http_context_set_x_ms_user_agent
        - Src:             'libfreerdp/core/gateway/wst.c:893,8'
          Dst:             http_context_set_host
        - Src:             'libfreerdp/core/gateway/wst.c:894,8'
          Dst:             http_context_enable_websocket_upgrade
        - Src:             'libfreerdp/core/gateway/wst.c:900,26'
          Dst:             BIO_s_wst
        - Src:             'libfreerdp/core/gateway/wst.c:900,18'
          Dst:             BIO_new
        - Src:             'libfreerdp/core/gateway/wst.c:905,2'
          Dst:             BIO_set_data
        - Src:             'libfreerdp/core/gateway/wst.c:906,2'
          Dst:             InitializeCriticalSection
        - Src:             'libfreerdp/core/gateway/wst.c:907,14'
          Dst:             credssp_auth_new
        - Src:             'libfreerdp/core/gateway/wst.c:911,19'
          Dst:             websocket_context_new
        - Src:             'libfreerdp/core/gateway/wst.c:919,2'
          Dst:             wst_free
    - functionName:    BIO_get_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/../tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/../tcp.h:70,9'
          Dst:             BIO_ctrl
    - functionName:    wst_get_event_handles
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 584
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          81
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - BIO_get_event
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:586,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:592,4'
          Dst:             BIO_get_event
    - functionName:    wst_handle_http_code
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 514
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         54
      ICount:          229
      EdgeCount:       59
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_last_error
        - freerdp_http_status_string_format
        - freerdp_set_last_error_ex
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/wst.c:482,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:487,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/wst.c:487,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/wst.c:494,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/wst.c:494,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/wst.c:501,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/wst.c:501,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/wst.c:504,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/wst.c:504,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/wst.c:511,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/wst.c:511,2'
          Dst:             freerdp_http_status_string_format
        - Src:             'libfreerdp/core/gateway/wst.c:511,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/wst.c:513,2'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/wst.c:513,2'
          Dst:             freerdp_set_last_error_ex
    - functionName:    wst_handle_denied
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          217
      EdgeCount:       57
      CyclomaticComplexity: 11
      functionsReached:
        - credssp_auth_have_output_token
        - credssp_auth_is_complete
        - freerdp_settings_get_string
        - http_response_extract_cookies
        - http_response_free
        - http_response_get_status_code
        - http_response_recv
        - winpr_int_assert
        - wst_auth_init
        - wst_recv_auth_token
        - wst_send_http_request
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:439,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:440,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:441,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:442,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:444,6'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/wst.c:447,7'
          Dst:             wst_auth_init
        - Src:             'libfreerdp/core/gateway/wst.c:449,7'
          Dst:             wst_send_http_request
        - Src:             'libfreerdp/core/gateway/wst.c:452,2'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/wst.c:453,16'
          Dst:             http_response_recv
        - Src:             'libfreerdp/core/gateway/wst.c:457,8'
          Dst:             http_response_extract_cookies
        - Src:             'libfreerdp/core/gateway/wst.c:459,10'
          Dst:             credssp_auth_is_complete
        - Src:             'libfreerdp/core/gateway/wst.c:461,8'
          Dst:             wst_recv_auth_token
        - Src:             'libfreerdp/core/gateway/wst.c:464,7'
          Dst:             credssp_auth_have_output_token
        - Src:             'libfreerdp/core/gateway/wst.c:466,9'
          Dst:             wst_send_http_request
        - Src:             'libfreerdp/core/gateway/wst.c:469,4'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/wst.c:470,18'
          Dst:             http_response_recv
        - Src:             'libfreerdp/core/gateway/wst.c:473,10'
          Dst:             http_response_extract_cookies
        - Src:             'libfreerdp/core/gateway/wst.c:476,17'
          Dst:             http_response_get_status_code
    - functionName:    wst_send_http_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          101
      EdgeCount:       27
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Buffer
        - Stream_Free
        - Stream_Length
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_tls_write_all
        - winpr_int_assert
        - wst_build_http_request
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:350,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:352,15'
          Dst:             wst_build_http_request
        - Src:             'libfreerdp/core/gateway/wst.c:356,20'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/wst.c:357,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/wst.c:357,2'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/wst.c:357,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/wst.c:359,48'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/wst.c:359,21'
          Dst:             freerdp_tls_write_all
        - Src:             'libfreerdp/core/gateway/wst.c:360,2'
          Dst:             Stream_Free
    - functionName:    wst_handle_ok_or_forbidden
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         85
      ICount:          421
      EdgeCount:       105
      CyclomaticComplexity: 22
      functionsReached:
        - BIO_ctrl
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - closesocket
        - freerdp_settings_get_bool
        - freerdp_settings_get_string
        - freerdp_tls_free
        - freerdp_tls_new
        - http_context_enable_websocket_upgrade
        - http_context_set_cookie
        - http_context_set_uri
        - http_response_extract_cookies
        - http_response_free
        - http_response_get_setcookie
        - http_response_get_status_code
        - http_response_recv
        - strchr
        - winpr_asprintf
        - winpr_int_assert
        - wst_send_http_request
        - wst_tls_connect
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:367,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:368,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:369,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:370,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:373,25'
          Dst:             http_response_get_setcookie
        - Src:             'libfreerdp/core/gateway/wst.c:374,25'
          Dst:             http_response_get_setcookie
        - Src:             'libfreerdp/core/gateway/wst.c:376,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/gateway/wst.c:378,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/wst.c:378,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/wst.c:379,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/wst.c:379,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/wst.c:382,9'
          Dst:             http_context_set_cookie
        - Src:             'libfreerdp/core/gateway/wst.c:387,9'
          Dst:             http_context_set_cookie
        - Src:             'libfreerdp/core/gateway/wst.c:390,3'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/wst.c:393,19'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/core/gateway/wst.c:395,4'
          Dst:             closesocket
        - Src:             'libfreerdp/core/gateway/wst.c:396,3'
          Dst:             freerdp_tls_free
        - Src:             'libfreerdp/core/gateway/wst.c:398,14'
          Dst:             freerdp_tls_new
        - Src:             'libfreerdp/core/gateway/wst.c:399,8'
          Dst:             wst_tls_connect
        - Src:             'libfreerdp/core/gateway/wst.c:402,7'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/wst.c:403,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/gateway/wst.c:407,23'
          Dst:             strchr
        - Src:             'libfreerdp/core/gateway/wst.c:408,25'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/wst.c:410,8'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/core/gateway/wst.c:418,9'
          Dst:             http_context_set_uri
        - Src:             'libfreerdp/core/gateway/wst.c:420,9'
          Dst:             http_context_enable_websocket_upgrade
        - Src:             'libfreerdp/core/gateway/wst.c:424,8'
          Dst:             wst_send_http_request
        - Src:             'libfreerdp/core/gateway/wst.c:426,17'
          Dst:             http_response_recv
        - Src:             'libfreerdp/core/gateway/wst.c:430,9'
          Dst:             http_response_extract_cookies
        - Src:             'libfreerdp/core/gateway/wst.c:431,18'
          Dst:             http_response_get_status_code
    - functionName:    wst_tls_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          306
      EdgeCount:       66
      CyclomaticComplexity: 14
      functionsReached:
        - BIO_free_all
        - BIO_int_ctrl
        - BIO_new
        - BIO_push
        - BIO_s_buffered_socket
        - BIO_s_simple_socket
        - BIO_set_nonblock
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - closesocket
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - freerdp_tcp_connect
        - freerdp_tls_connect
        - proxy_connect
        - proxy_prepare
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:222,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:223,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:234,6'
          Dst:             proxy_prepare
        - Src:             'libfreerdp/core/gateway/wst.c:236,11'
          Dst:             freerdp_tcp_connect
        - Src:             'libfreerdp/core/gateway/wst.c:238,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/wst.c:238,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gateway/wst.c:244,22'
          Dst:             BIO_s_simple_socket
        - Src:             'libfreerdp/core/gateway/wst.c:244,14'
          Dst:             BIO_new
        - Src:             'libfreerdp/core/gateway/wst.c:248,3'
          Dst:             closesocket
        - Src:             'libfreerdp/core/gateway/wst.c:252,2'
          Dst:             BIO_int_ctrl
        - Src:             'libfreerdp/core/gateway/wst.c:253,24'
          Dst:             BIO_s_buffered_socket
        - Src:             'libfreerdp/core/gateway/wst.c:253,16'
          Dst:             BIO_new
        - Src:             'libfreerdp/core/gateway/wst.c:257,3'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/core/gateway/wst.c:261,16'
          Dst:             BIO_push
        - Src:             'libfreerdp/core/gateway/wst.c:262,11'
          Dst:             BIO_set_nonblock
        - Src:             'libfreerdp/core/gateway/wst.c:266,8'
          Dst:             proxy_connect
        - Src:             'libfreerdp/core/gateway/wst.c:269,4'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/core/gateway/wst.c:276,3'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/core/gateway/wst.c:283,11'
          Dst:             freerdp_tls_connect
        - Src:             'libfreerdp/core/gateway/wst.c:289,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/wst.c:289,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/wst.c:293,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/wst.c:293,4'
          Dst:             freerdp_set_last_error_ex
    - functionName:    wst_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/wst.c'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 581
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         57
      ICount:          282
      EdgeCount:       67
      CyclomaticComplexity: 12
      functionsReached:
        - WLog_Get
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - freerdp_settings_get_bool
        - http_context_enable_websocket_upgrade
        - http_response_extract_cookies
        - http_response_free
        - http_response_get_status_code
        - http_response_is_websocket
        - http_response_log_error_status_
        - http_response_recv
        - websocket_context_reset
        - winpr_int_assert
        - wst_handle_denied
        - wst_handle_http_code
        - wst_handle_ok_or_forbidden
        - wst_send_http_request
        - wst_tls_connect
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/wst.c:557,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/wst.c:519,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:520,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/wst.c:522,7'
          Dst:             wst_tls_connect
        - Src:             'libfreerdp/core/gateway/wst.c:524,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/wst.c:524,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/wst.c:528,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/gateway/wst.c:535,8'
          Dst:             http_context_enable_websocket_upgrade
        - Src:             'libfreerdp/core/gateway/wst.c:537,4'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/wst.c:537,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/wst.c:541,7'
          Dst:             wst_send_http_request
        - Src:             'libfreerdp/core/gateway/wst.c:543,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/wst.c:543,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/wst.c:547,27'
          Dst:             http_response_recv
        - Src:             'libfreerdp/core/gateway/wst.c:550,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/gateway/wst.c:550,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/wst.c:553,8'
          Dst:             http_response_extract_cookies
        - Src:             'libfreerdp/core/gateway/wst.c:555,22'
          Dst:             http_response_get_status_code
        - Src:             'libfreerdp/core/gateway/wst.c:561,14'
          Dst:             wst_handle_ok_or_forbidden
        - Src:             'libfreerdp/core/gateway/wst.c:565,14'
          Dst:             wst_handle_denied
        - Src:             'libfreerdp/core/gateway/wst.c:568,4'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/gateway/wst.c:568,4'
          Dst:             http_response_log_error_status_
        - Src:             'libfreerdp/core/gateway/wst.c:572,27'
          Dst:             http_response_is_websocket
        - Src:             'libfreerdp/core/gateway/wst.c:573,2'
          Dst:             http_response_free
        - Src:             'libfreerdp/core/gateway/wst.c:575,10'
          Dst:             wst_handle_http_code
        - Src:             'libfreerdp/core/gateway/wst.c:578,10'
          Dst:             websocket_context_reset
        - Src:             'libfreerdp/core/gateway/wst.c:580,9'
          Dst:             wst_handle_http_code
    - functionName:    arm_resolve_endpoint
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/arm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1262
      functionLinenumberEnd: 1265
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          39
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/arm.c:1264,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gateway/arm.c:1264,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rpc_ncacn_http_is_final_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/ncacn_http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - credssp_auth_is_complete
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:277,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:278,9'
          Dst:             credssp_auth_is_complete
    - functionName:    rpc_ncacn_http_recv_out_channel_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/ncacn_http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          118
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - credssp_auth_pkg_name
        - credssp_auth_take_input_buffer
        - crypto_base64_decode
        - http_response_get_auth_token
        - sspi_SecBufferFree
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:253,63'
          Dst:             credssp_auth_pkg_name
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:253,24'
          Dst:             http_response_get_auth_token
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:256,33'
          Dst:             strlen
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:256,3'
          Dst:             crypto_base64_decode
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:267,3'
          Dst:             credssp_auth_take_input_buffer
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:271,2'
          Dst:             sspi_SecBufferFree
    - functionName:    rpc_ncacn_http_send_out_channel_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/ncacn_http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          159
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_Buffer
        - Stream_Free
        - Stream_Length
        - credssp_auth_authenticate
        - credssp_auth_get_output_buffer
        - credssp_auth_have_output_token
        - credssp_auth_pkg_name
        - rpc_auth_http_request
        - rpc_channel_write_int
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:221,7'
          Dst:             credssp_auth_authenticate
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:230,11'
          Dst:             credssp_auth_have_output_token
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:230,50'
          Dst:             credssp_auth_get_output_buffer
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:232,28'
          Dst:             credssp_auth_pkg_name
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:231,6'
          Dst:             rpc_auth_http_request
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:237,6'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:237,6'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:237,6'
          Dst:             rpc_channel_write_int
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:240,2'
          Dst:             Stream_Free
    - functionName:    rpc_auth_http_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/ncacn_http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          149
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - crypto_base64_encode
        - http_context_get_uri
        - http_request_free
        - http_request_new
        - http_request_set_auth_param
        - http_request_set_auth_scheme
        - http_request_set_content_length
        - http_request_set_method
        - http_request_set_uri
        - http_request_write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:47,12'
          Dst:             http_request_new
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:53,21'
          Dst:             crypto_base64_encode
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:55,8'
          Dst:             http_context_get_uri
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:57,7'
          Dst:             http_request_set_method
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:58,7'
          Dst:             http_request_set_content_length
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:59,7'
          Dst:             http_request_set_uri
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:64,8'
          Dst:             http_request_set_auth_scheme
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:65,8'
          Dst:             http_request_set_auth_param
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:69,6'
          Dst:             http_request_write
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:71,2'
          Dst:             http_request_free
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:1325,3'
          Dst:             winpr_int_assert
    - functionName:    rpc_ncacn_http_auth_uninit
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/ncacn_http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - credssp_auth_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:201,2'
          Dst:             credssp_auth_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:    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:    rpc_ncacn_http_auth_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/ncacn_http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          188
      EdgeCount:       42
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Print_dbg_tag
        - credssp_auth_init
        - credssp_auth_set_flags
        - credssp_auth_setup_client
        - freerdp_set_last_error_ex
        - freerdp_settings_get_string
        - identity_set_from_settings
        - sspi_FreeAuthIdentity
        - utils_authenticate_gateway
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gateway/ncacn_http.c:161,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:160,7'
          Dst:             utils_authenticate_gateway
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:167,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:170,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:177,7'
          Dst:             credssp_auth_init
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:180,7'
          Dst:             identity_set_from_settings
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:184,32'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:185,32'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:187,19'
          Dst:             credssp_auth_setup_client
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:189,2'
          Dst:             sspi_FreeAuthIdentity
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:191,2'
          Dst:             credssp_auth_set_flags
    - functionName:    rpc_ncacn_http_recv_in_channel_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/ncacn_http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          118
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - credssp_auth_pkg_name
        - credssp_auth_take_input_buffer
        - crypto_base64_decode
        - http_response_get_auth_token
        - sspi_SecBufferFree
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:117,63'
          Dst:             credssp_auth_pkg_name
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:117,24'
          Dst:             http_response_get_auth_token
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:120,33'
          Dst:             strlen
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:120,3'
          Dst:             crypto_base64_decode
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:132,3'
          Dst:             credssp_auth_take_input_buffer
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:136,2'
          Dst:             sspi_SecBufferFree
    - functionName:    rpc_ncacn_http_send_in_channel_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gateway/ncacn_http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          133
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_Buffer
        - Stream_Free
        - Stream_Length
        - credssp_auth_authenticate
        - credssp_auth_get_output_buffer
        - credssp_auth_have_output_token
        - credssp_auth_pkg_name
        - rpc_auth_http_request
        - rpc_channel_write_int
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:91,7'
          Dst:             credssp_auth_authenticate
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:96,11'
          Dst:             credssp_auth_have_output_token
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:96,50'
          Dst:             credssp_auth_get_output_buffer
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:98,28'
          Dst:             credssp_auth_pkg_name
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:97,6'
          Dst:             rpc_auth_http_request
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:103,11'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:103,11'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:103,11'
          Dst:             rpc_channel_write_int
        - Src:             'libfreerdp/core/gateway/ncacn_http.c:104,2'
          Dst:             Stream_Free
    - functionName:    bulk_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bulk.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mppc_context_free
        - ncrush_context_free
        - xcrush_context_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bulk.c:386,2'
          Dst:             mppc_context_free
        - Src:             'libfreerdp/codec/bulk.c:387,2'
          Dst:             mppc_context_free
        - Src:             'libfreerdp/codec/bulk.c:388,2'
          Dst:             ncrush_context_free
        - Src:             'libfreerdp/codec/bulk.c:389,2'
          Dst:             ncrush_context_free
        - Src:             'libfreerdp/codec/bulk.c:390,2'
          Dst:             xcrush_context_free
        - Src:             'libfreerdp/codec/bulk.c:391,2'
          Dst:             xcrush_context_free
    - functionName:    bulk_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bulk.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          137
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - bulk_free
        - calloc
        - freerdp_settings_get_uint32
        - mppc_context_new
        - ncrush_context_new
        - winpr_int_assert
        - xcrush_context_new
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bulk.c:343,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:345,19'
          Dst:             calloc
        - Src:             'libfreerdp/codec/bulk.c:351,19'
          Dst:             mppc_context_new
        - Src:             'libfreerdp/codec/bulk.c:354,19'
          Dst:             mppc_context_new
        - Src:             'libfreerdp/codec/bulk.c:357,21'
          Dst:             ncrush_context_new
        - Src:             'libfreerdp/codec/bulk.c:360,21'
          Dst:             ncrush_context_new
        - Src:             'libfreerdp/codec/bulk.c:363,21'
          Dst:             xcrush_context_new
        - Src:             'libfreerdp/codec/bulk.c:366,21'
          Dst:             xcrush_context_new
        - Src:             'libfreerdp/codec/bulk.c:370,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/codec/bulk.c:376,2'
          Dst:             bulk_free
    - functionName:    bulk_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bulk.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - mppc_context_reset
        - ncrush_context_reset
        - winpr_int_assert
        - xcrush_context_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bulk.c:330,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:332,2'
          Dst:             mppc_context_reset
        - Src:             'libfreerdp/codec/bulk.c:333,2'
          Dst:             mppc_context_reset
        - Src:             'libfreerdp/codec/bulk.c:334,2'
          Dst:             ncrush_context_reset
        - Src:             'libfreerdp/codec/bulk.c:335,2'
          Dst:             ncrush_context_reset
        - Src:             'libfreerdp/codec/bulk.c:336,2'
          Dst:             xcrush_context_reset
        - Src:             'libfreerdp/codec/bulk.c:337,2'
          Dst:             xcrush_context_reset
    - functionName:    bulk_compression_level
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bulk.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          100
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bulk.c:79,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:80,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:82,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:84,34'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/codec/bulk.c:87,2'
          Dst:             winpr_int_assert
    - functionName:    bulk_compress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bulk.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          248
      EdgeCount:       58
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - bulk_compression_level
        - bulk_update_compression_max_size
        - metrics_write_bytes
        - mppc_compress
        - mppc_set_compression_level
        - ncrush_compress
        - winpr_int_assert
        - xcrush_compress
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/bulk.c:271,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/bulk.c:251,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:252,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:253,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:254,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:255,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:258,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:268,34'
          Dst:             bulk_compression_level
        - Src:             'libfreerdp/codec/bulk.c:269,2'
          Dst:             bulk_update_compression_max_size
        - Src:             'libfreerdp/codec/bulk.c:275,4'
          Dst:             mppc_set_compression_level
        - Src:             'libfreerdp/codec/bulk.c:276,13'
          Dst:             mppc_compress
        - Src:             'libfreerdp/codec/bulk.c:280,13'
          Dst:             ncrush_compress
        - Src:             'libfreerdp/codec/bulk.c:284,13'
          Dst:             xcrush_compress
        - Src:             'libfreerdp/codec/bulk.c:288,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/bulk.c:292,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/bulk.c:302,7'
          Dst:             metrics_write_bytes
    - functionName:    bulk_update_compression_max_size
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bulk.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - bulk_compression_level
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bulk.c:93,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:94,34'
          Dst:             bulk_compression_level
    - 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:    bulk_decompress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bulk.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          243
      EdgeCount:       53
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - bulk_update_compression_max_size
        - metrics_write_bytes
        - mppc_decompress
        - mppc_set_compression_level
        - ncrush_decompress
        - winpr_int_assert
        - xcrush_decompress
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/bulk.c:175,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/bulk.c:161,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:162,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:163,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:164,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:165,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:168,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bulk.c:170,2'
          Dst:             bulk_update_compression_max_size
        - Src:             'libfreerdp/codec/bulk.c:178,5'
          Dst:             mppc_set_compression_level
        - Src:             'libfreerdp/codec/bulk.c:180,9'
          Dst:             mppc_decompress
        - Src:             'libfreerdp/codec/bulk.c:184,5'
          Dst:             mppc_set_compression_level
        - Src:             'libfreerdp/codec/bulk.c:186,9'
          Dst:             mppc_decompress
        - Src:             'libfreerdp/codec/bulk.c:190,14'
          Dst:             ncrush_decompress
        - Src:             'libfreerdp/codec/bulk.c:195,14'
          Dst:             xcrush_decompress
        - Src:             'libfreerdp/codec/bulk.c:200,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/bulk.c:205,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/bulk.c:222,7'
          Dst:             metrics_write_bytes
        - Src:             'libfreerdp/codec/bulk.c:239,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    bulk_compression_max_size
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bulk.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - bulk_update_compression_max_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bulk.c:99,2'
          Dst:             bulk_update_compression_max_size
    - functionName:    PLANAR_CONTROL_BYTE
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          97
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:101,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:101,9'
          Dst:             winpr_int_assert
    - functionName:    freerdp_bitmap_planar_write_rle_bytes
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1218
      functionLinenumberEnd: 1328
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          316
      EdgeCount:       71
      CyclomaticComplexity: 20
      functionsReached:
        - PLANAR_CONTROL_BYTE
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:1241,20'
          Dst:             PLANAR_CONTROL_BYTE
        - Src:             'libfreerdp/codec/planar.c:1247,20'
          Dst:             PLANAR_CONTROL_BYTE
        - Src:             'libfreerdp/codec/planar.c:1254,19'
          Dst:             PLANAR_CONTROL_BYTE
        - Src:             'libfreerdp/codec/planar.c:1261,18'
          Dst:             PLANAR_CONTROL_BYTE
        - Src:             'libfreerdp/codec/planar.c:1291,19'
          Dst:             PLANAR_CONTROL_BYTE
        - Src:             'libfreerdp/codec/planar.c:1296,19'
          Dst:             PLANAR_CONTROL_BYTE
        - Src:             'libfreerdp/codec/planar.c:1302,18'
          Dst:             PLANAR_CONTROL_BYTE
        - Src:             'libfreerdp/codec/planar.c:1307,18'
          Dst:             PLANAR_CONTROL_BYTE
        - Src:             'libfreerdp/codec/planar.c:1312,18'
          Dst:             PLANAR_CONTROL_BYTE
    - functionName:    freerdp_bitmap_planar_encode_rle_bytes
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1401
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          258
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - freerdp_bitmap_planar_write_rle_bytes
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:1367,21'
          Dst:             freerdp_bitmap_planar_write_rle_bytes
        - Src:             'libfreerdp/codec/planar.c:1388,19'
          Dst:             freerdp_bitmap_planar_write_rle_bytes
    - functionName:    freerdp_bitmap_planar_compress_plane_rle
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1406
      functionLinenumberEnd: 1436
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          118
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - freerdp_bitmap_planar_encode_rle_bytes
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:1419,7'
          Dst:             freerdp_bitmap_planar_encode_rle_bytes
    - functionName:    freerdp_bitmap_planar_delta_encode_plane
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1490
      functionLinenumberEnd: 1522
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          196
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:1496,21'
          Dst:             calloc
    - functionName:    clamp
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    check_source_available
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          136
      EdgeCount:       41
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:252,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:253,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:253,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:257,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:    27
      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:    writeLine
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 547
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          313
      EdgeCount:       54
      CyclomaticComplexity: 6
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - FreeRDPGetColor
        - FreeRDPWriteColor
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/planar.c:553,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:548,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:549,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:550,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:551,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:584,10'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/codec/planar.c:585,6'
          Dst:             FreeRDPWriteColor
        - Src:             'libfreerdp/codec/planar.c:586,17'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/planar.c:596,10'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/codec/planar.c:597,6'
          Dst:             FreeRDPWriteColor
        - Src:             'libfreerdp/codec/planar.c:598,17'
          Dst:             FreeRDPGetBytesPerPixel
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PLANAR_CONTROL_BYTE_RAW_BYTES
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PLANAR_CONTROL_BYTE_RUN_LENGTH
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_planar_topdown_image
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1832
      functionLinenumberEnd: 1835
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:1833,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_planar_switch_bgr
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1826
      functionLinenumberEnd: 1829
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:1827,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_bitmap_planar_context_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1814
      functionLinenumberEnd: 1823
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_aligned_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:1818,2'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/planar.c:1819,2'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/planar.c:1820,2'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/planar.c:1821,2'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/planar.c:1822,2'
          Dst:             winpr_aligned_free
    - functionName:    freerdp_bitmap_planar_context_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1780
      functionLinenumberEnd: 1811
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          120
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - freerdp_bitmap_planar_context_free
        - freerdp_bitmap_planar_context_reset
        - winpr_aligned_calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:1782,30'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/planar.c:1801,7'
          Dst:             freerdp_bitmap_planar_context_reset
        - Src:             'libfreerdp/codec/planar.c:1805,3'
          Dst:             freerdp_bitmap_planar_context_free
    - functionName:    freerdp_bitmap_planar_context_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1722
      functionLinenumberEnd: 1776
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          336
      EdgeCount:       37
      CyclomaticComplexity: 12
      functionsReached:
        - winpr_aligned_recalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:1746,15'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/codec/planar.c:1751,9'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/codec/planar.c:1756,9'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/codec/planar.c:1761,9'
          Dst:             winpr_aligned_recalloc
    - functionName:    freerdp_bitmap_planar_compress_planes_rle
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1443
      functionLinenumberEnd: 1486
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          166
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - freerdp_bitmap_planar_compress_plane_rle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:1455,8'
          Dst:             freerdp_bitmap_planar_compress_plane_rle
        - Src:             'libfreerdp/codec/planar.c:1466,7'
          Dst:             freerdp_bitmap_planar_compress_plane_rle
        - Src:             'libfreerdp/codec/planar.c:1475,7'
          Dst:             freerdp_bitmap_planar_compress_plane_rle
        - Src:             'libfreerdp/codec/planar.c:1484,10'
          Dst:             freerdp_bitmap_planar_compress_plane_rle
    - functionName:    freerdp_bitmap_planar_delta_encode_planes
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1527
      functionLinenumberEnd: 1538
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_bitmap_planar_delta_encode_plane
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:1531,7'
          Dst:             freerdp_bitmap_planar_delta_encode_plane
    - functionName:    freerdp_split_color_planes
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1167
      functionLinenumberEnd: 1212
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          271
      EdgeCount:       48
      CyclomaticComplexity: 11
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - FreeRDPReadColor
        - FreeRDPSplitColor
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:1168,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1174,22'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/planar.c:1185,26'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/codec/planar.c:1186,14'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/planar.c:1187,5'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/codec/planar.c:1203,26'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/codec/planar.c:1204,14'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/planar.c:1205,5'
          Dst:             FreeRDPSplitColor
    - functionName:    freerdp_bitmap_compress_planar
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1544
      functionLinenumberEnd: 1718
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          651
      EdgeCount:       105
      CyclomaticComplexity: 30
      functionsReached:
        - freerdp_bitmap_planar_compress_planes_rle
        - freerdp_bitmap_planar_delta_encode_planes
        - freerdp_split_color_planes
        - planar_invert_format
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:1559,12'
          Dst:             planar_invert_format
        - Src:             'libfreerdp/codec/planar.c:1561,7'
          Dst:             freerdp_split_color_planes
        - Src:             'libfreerdp/codec/planar.c:1567,8'
          Dst:             freerdp_bitmap_planar_delta_encode_planes
        - Src:             'libfreerdp/codec/planar.c:1571,8'
          Dst:             freerdp_bitmap_planar_compress_planes_rle
    - functionName:    planar_invert_format
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          137
      EdgeCount:       33
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/planar.c:119,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:116,2'
          Dst:             winpr_int_assert
    - functionName:    planar_subsample_expand
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 676
      functionLinenumberEnd: 708
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          141
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:680,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:681,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:685,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:692,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    planar_decompress_plane_rle_only
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         139
      ICount:          676
      EdgeCount:       165
      CyclomaticComplexity: 28
      functionsReached:
        - PLANAR_CONTROL_BYTE_RAW_BYTES
        - PLANAR_CONTROL_BYTE_RUN_LENGTH
        - WLog_Print_dbg_tag
        - check_source_available
        - clamp
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:270,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:271,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:281,9'
          Dst:             check_source_available
        - Src:             'libfreerdp/codec/planar.c:286,24'
          Dst:             PLANAR_CONTROL_BYTE_RUN_LENGTH
        - Src:             'libfreerdp/codec/planar.c:287,23'
          Dst:             PLANAR_CONTROL_BYTE_RAW_BYTES
        - Src:             'libfreerdp/codec/planar.c:302,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:308,10'
          Dst:             check_source_available
        - Src:             'libfreerdp/codec/planar.c:314,14'
          Dst:             clamp
        - Src:             'libfreerdp/codec/planar.c:322,14'
          Dst:             clamp
        - Src:             'libfreerdp/codec/planar.c:330,10'
          Dst:             check_source_available
        - Src:             'libfreerdp/codec/planar.c:342,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:342,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:347,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:347,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:351,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:351,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:352,14'
          Dst:             clamp
        - Src:             'libfreerdp/codec/planar.c:361,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:361,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:362,14'
          Dst:             clamp
    - functionName:    planar_set_plane
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - char
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          159
      EdgeCount:       35
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:518,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:519,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:520,2'
          Dst:             winpr_int_assert
    - functionName:    planar_decompress_plane_rle
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         169
      ICount:          821
      EdgeCount:       199
      CyclomaticComplexity: 32
      functionsReached:
        - PLANAR_CONTROL_BYTE_RAW_BYTES
        - PLANAR_CONTROL_BYTE_RUN_LENGTH
        - WLog_Print_dbg_tag
        - check_source_available
        - clamp
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:387,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:388,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:389,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:413,9'
          Dst:             check_source_available
        - Src:             'libfreerdp/codec/planar.c:418,24'
          Dst:             PLANAR_CONTROL_BYTE_RUN_LENGTH
        - Src:             'libfreerdp/codec/planar.c:419,23'
          Dst:             PLANAR_CONTROL_BYTE_RAW_BYTES
        - Src:             'libfreerdp/codec/planar.c:434,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:440,10'
          Dst:             check_source_available
        - Src:             'libfreerdp/codec/planar.c:448,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:448,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:456,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:456,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:464,10'
          Dst:             check_source_available
        - Src:             'libfreerdp/codec/planar.c:476,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:476,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:485,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:485,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:486,14'
          Dst:             clamp
        - Src:             'libfreerdp/codec/planar.c:495,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:495,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:496,14'
          Dst:             clamp
    - functionName:    planar_decompress_planes_raw
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 611
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         82
      ICount:          394
      EdgeCount:       97
      CyclomaticComplexity: 17
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - writeLine
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:619,21'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/planar.c:623,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:623,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:630,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:630,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:636,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:645,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:656,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:656,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:658,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:666,8'
          Dst:             writeLine
    - functionName:    planar_skip_plane_rle
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          180
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - PLANAR_CONTROL_BYTE_RAW_BYTES
        - PLANAR_CONTROL_BYTE_RUN_LENGTH
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:189,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:197,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:203,26'
          Dst:             PLANAR_CONTROL_BYTE_RUN_LENGTH
        - Src:             'libfreerdp/codec/planar.c:204,25'
          Dst:             PLANAR_CONTROL_BYTE_RAW_BYTES
        - Src:             'libfreerdp/codec/planar.c:223,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:229,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:238,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDPColorHasAlpha
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_bitmap_decompress_planar
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 729
      functionLinenumberEnd: 1161
      functionDepth:   0
      returnType:      int
      argCount:        13
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         472
      ICount:          2544
      EdgeCount:       578
      CyclomaticComplexity: 108
      functionsReached:
        - FreeRDPColorHasAlpha
        - FreeRDPGetBytesPerPixel
        - WLog_Print_dbg_tag
        - freerdp_image_copy_no_overlap
        - planar_decompress_plane_rle
        - planar_decompress_plane_rle_only
        - planar_decompress_planes_raw
        - planar_invert_format
        - planar_set_plane
        - planar_skip_plane_rle
        - planar_subsample_expand
        - primitives_get
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:739,30'
          Dst:             primitives_get
        - Src:             'libfreerdp/codec/planar.c:741,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:742,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:749,21'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/planar.c:757,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:764,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:774,14'
          Dst:             planar_invert_format
        - Src:             'libfreerdp/codec/planar.c:777,14'
          Dst:             FreeRDPColorHasAlpha
        - Src:             'libfreerdp/codec/planar.c:784,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:824,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:824,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:827,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:842,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:854,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:864,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:874,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:886,18'
          Dst:             planar_skip_plane_rle
        - Src:             'libfreerdp/codec/planar.c:897,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:897,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:900,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:903,17'
          Dst:             planar_skip_plane_rle
        - Src:             'libfreerdp/codec/planar.c:911,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:911,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:914,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:917,17'
          Dst:             planar_skip_plane_rle
        - Src:             'libfreerdp/codec/planar.c:924,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:924,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:927,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:930,17'
          Dst:             planar_skip_plane_rle
        - Src:             'libfreerdp/codec/planar.c:949,16'
          Dst:             planar_invert_format
        - Src:             'libfreerdp/codec/planar.c:960,9'
          Dst:             planar_decompress_planes_raw
        - Src:             'libfreerdp/codec/planar.c:976,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:985,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:993,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:993,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:992,13'
          Dst:             planar_decompress_plane_rle
        - Src:             'libfreerdp/codec/planar.c:1000,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1000,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:999,13'
          Dst:             planar_decompress_plane_rle
        - Src:             'libfreerdp/codec/planar.c:1007,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1007,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1006,13'
          Dst:             planar_decompress_plane_rle
        - Src:             'libfreerdp/codec/planar.c:1018,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1018,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1017,14'
          Dst:             planar_decompress_plane_rle
        - Src:             'libfreerdp/codec/planar.c:1022,14'
          Dst:             planar_set_plane
        - Src:             'libfreerdp/codec/planar.c:1034,9'
          Dst:             freerdp_image_copy_no_overlap
        - Src:             'libfreerdp/codec/planar.c:1038,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/planar.c:1049,33'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/planar.c:1073,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1073,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1072,14'
          Dst:             planar_decompress_plane_rle_only
        - Src:             'libfreerdp/codec/planar.c:1084,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1084,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1083,13'
          Dst:             planar_decompress_plane_rle_only
        - Src:             'libfreerdp/codec/planar.c:1091,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1091,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1090,13'
          Dst:             planar_decompress_plane_rle_only
        - Src:             'libfreerdp/codec/planar.c:1098,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1098,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1097,13'
          Dst:             planar_decompress_plane_rle_only
        - Src:             'libfreerdp/codec/planar.c:1116,10'
          Dst:             planar_subsample_expand
        - Src:             'libfreerdp/codec/planar.c:1125,10'
          Dst:             planar_subsample_expand
        - Src:             'libfreerdp/codec/planar.c:1135,9'
          Dst:             planar_decompress_planes_raw
        - Src:             'libfreerdp/codec/planar.c:1148,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1150,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1150,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1151,7'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1151,7'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/planar.c:1154,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    planar_decompress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/planar.c'
      linkageType:     InternalLinkage
      functionLinenumber: 716
      functionLinenumberEnd: 719
      functionDepth:   0
      returnType:      int
      argCount:        13
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_bitmap_decompress_planar
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/planar.c:717,9'
          Dst:             freerdp_bitmap_decompress_planar
    - functionName:    WriteFgBgImage8to8
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/include/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         127
      ICount:          523
      EdgeCount:       147
      CyclomaticComplexity: 22
      functionsReached:
        - WLog_Print_dbg_tag
        - ensure_capacity_
        - winpr_int_assert
        - write_pixel_8
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/include/bitmap.h:41,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/include/bitmap.h:45,7'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          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:    27
      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:    ensure_capacity_
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          81
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    39
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/interleaved.c:387,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    write_pixel_8
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    34
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/interleaved.c:397,2'
          Dst:             winpr_int_assert
    - functionName:    WriteFirstLineFgBgImage8to8
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/include/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         127
      ICount:          474
      EdgeCount:       147
      CyclomaticComplexity: 22
      functionsReached:
        - WLog_Print_dbg_tag
        - ensure_capacity_
        - winpr_int_assert
        - write_pixel_8
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/include/bitmap.h:76,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/include/bitmap.h:80,7'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
    - functionName:    WriteFgBgImage16to16
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/include/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         127
      ICount:          523
      EdgeCount:       147
      CyclomaticComplexity: 22
      functionsReached:
        - WLog_Print_dbg_tag
        - ensure_capacity_
        - winpr_int_assert
        - write_pixel_16
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/include/bitmap.h:41,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/include/bitmap.h:45,7'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
    - functionName:    write_pixel_16
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 414
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    34
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/interleaved.c:411,2'
          Dst:             winpr_int_assert
    - functionName:    WriteFirstLineFgBgImage16to16
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/include/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         127
      ICount:          474
      EdgeCount:       147
      CyclomaticComplexity: 22
      functionsReached:
        - WLog_Print_dbg_tag
        - ensure_capacity_
        - winpr_int_assert
        - write_pixel_16
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/include/bitmap.h:76,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/include/bitmap.h:80,7'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
    - functionName:    ExtractRunLengthMegaMega
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          94
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - buffer_within_range_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/interleaved.c:277,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:278,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:279,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:281,7'
          Dst:             buffer_within_range_
    - functionName:    buffer_within_range_
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          72
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    39
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/interleaved.c:158,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:159,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:163,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ExtractRunLengthLite
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          100
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_within_range_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/interleaved.c:297,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:298,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:299,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:304,8'
          Dst:             buffer_within_range_
    - functionName:    ExtractRunLengthRegular
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          100
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_within_range_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/interleaved.c:254,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:255,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:256,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:261,8'
          Dst:             buffer_within_range_
    - functionName:    ExtractRunLengthLiteFgBg
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          103
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_within_range_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/interleaved.c:229,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:230,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:231,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:236,8'
          Dst:             buffer_within_range_
    - functionName:    ExtractRunLengthRegularFgBg
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          103
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - buffer_within_range_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/interleaved.c:204,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:205,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:206,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:211,8'
          Dst:             buffer_within_range_
    - functionName:    WriteFgBgImage24to24
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/include/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         127
      ICount:          583
      EdgeCount:       147
      CyclomaticComplexity: 22
      functionsReached:
        - WLog_Print_dbg_tag
        - ensure_capacity_
        - winpr_int_assert
        - write_pixel_24
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/include/bitmap.h:41,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/include/bitmap.h:45,7'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:48,2'
          Dst:             winpr_int_assert
    - functionName:    write_pixel_24
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    34
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/interleaved.c:403,2'
          Dst:             winpr_int_assert
    - functionName:    WriteFirstLineFgBgImage24to24
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/include/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         127
      ICount:          474
      EdgeCount:       147
      CyclomaticComplexity: 22
      functionsReached:
        - WLog_Print_dbg_tag
        - ensure_capacity_
        - winpr_int_assert
        - write_pixel_24
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/include/bitmap.h:76,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/include/bitmap.h:80,7'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:83,2'
          Dst:             winpr_int_assert
    - functionName:    ExtractRunLength
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          177
      EdgeCount:       45
      CyclomaticComplexity: 2
      functionsReached:
        - ExtractRunLengthLite
        - ExtractRunLengthLiteFgBg
        - ExtractRunLengthMegaMega
        - ExtractRunLengthRegular
        - ExtractRunLengthRegularFgBg
        - buffer_within_range_
        - winpr_int_assert
      functionUses:    18
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/interleaved.c:333,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/interleaved.c:321,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:322,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:323,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/interleaved.c:330,7'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/interleaved.c:336,16'
          Dst:             ExtractRunLengthRegularFgBg
        - Src:             'libfreerdp/codec/interleaved.c:340,16'
          Dst:             ExtractRunLengthLiteFgBg
        - Src:             'libfreerdp/codec/interleaved.c:347,16'
          Dst:             ExtractRunLengthRegular
        - Src:             'libfreerdp/codec/interleaved.c:352,16'
          Dst:             ExtractRunLengthLite
        - Src:             'libfreerdp/codec/interleaved.c:363,16'
          Dst:             ExtractRunLengthMegaMega
    - functionName:    ExtractCodeId
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitmap_interleaved_context_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 761
      functionLinenumberEnd: 768
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Free
        - winpr_aligned_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/interleaved.c:765,2'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/interleaved.c:766,2'
          Dst:             Stream_Free
        - Src:             'libfreerdp/codec/interleaved.c:767,2'
          Dst:             winpr_aligned_free
    - functionName:    bitmap_interleaved_context_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 758
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_New
        - bitmap_interleaved_context_free
        - winpr_aligned_calloc
        - winpr_aligned_recalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/interleaved.c:733,45'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/codec/interleaved.c:739,29'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/interleaved.c:744,22'
          Dst:             Stream_New
        - Src:             'libfreerdp/codec/interleaved.c:755,2'
          Dst:             bitmap_interleaved_context_free
    - functionName:    bitmap_interleaved_context_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 727
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:1325,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_ResetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1358,3'
          Dst:             winpr_int_assert
    - functionName:    interleaved_compress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 723
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          213
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_Free
        - Stream_Length
        - Stream_New
        - Stream_ResetPosition
        - Stream_SealLength
        - WLog_Print_dbg_tag
        - freerdp_bitmap_compress
        - freerdp_image_copy_no_overlap
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/interleaved.c:686,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/interleaved.c:673,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/interleaved.c:679,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/interleaved.c:704,7'
          Dst:             freerdp_image_copy_no_overlap
        - Src:             'libfreerdp/codec/interleaved.c:709,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/codec/interleaved.c:714,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/codec/interleaved.c:716,12'
          Dst:             freerdp_bitmap_compress
        - Src:             'libfreerdp/codec/interleaved.c:719,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/codec/interleaved.c:720,22'
          Dst:             Stream_Length
        - Src:             'libfreerdp/codec/interleaved.c:721,2'
          Dst:             Stream_Free
    - functionName:    RleDecompress8to8
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/include/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         523
      ICount:          2023
      EdgeCount:       621
      CyclomaticComplexity: 100
      functionsReached:
        - ExtractCodeId
        - ExtractRunLength
        - WLog_Print_dbg_tag
        - WriteFgBgImage8to8
        - WriteFirstLineFgBgImage8to8
        - buffer_within_range_
        - ensure_capacity_
        - write_pixel_8
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/include/bitmap.h:214,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/include/bitmap.h:121,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/include/bitmap.h:128,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/include/bitmap.h:153,10'
          Dst:             ExtractCodeId
        - Src:             'libfreerdp/codec/include/bitmap.h:162,16'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:171,11'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:174,6'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:178,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:181,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:181,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:181,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:189,11'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:192,6'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:196,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:199,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:199,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:199,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:221,17'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:228,11'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:233,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:238,6'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:238,6'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:238,6'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:242,6'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:242,6'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:242,6'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:253,17'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:257,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:260,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:264,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:276,17'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:280,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:284,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:287,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:287,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:287,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:295,17'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:302,11'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:307,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:315,16'
          Dst:             WriteFirstLineFgBgImage8to8
        - Src:             'libfreerdp/codec/include/bitmap.h:329,16'
          Dst:             WriteFgBgImage8to8
        - Src:             'libfreerdp/codec/include/bitmap.h:340,11'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:347,11'
          Dst:             WriteFirstLineFgBgImage8to8
        - Src:             'libfreerdp/codec/include/bitmap.h:352,11'
          Dst:             WriteFgBgImage8to8
        - Src:             'libfreerdp/codec/include/bitmap.h:364,17'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:368,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:370,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:373,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:373,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:373,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:381,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:388,10'
          Dst:             WriteFirstLineFgBgImage8to8
        - Src:             'libfreerdp/codec/include/bitmap.h:393,10'
          Dst:             WriteFgBgImage8to8
        - Src:             'libfreerdp/codec/include/bitmap.h:403,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:410,10'
          Dst:             WriteFirstLineFgBgImage8to8
        - Src:             'libfreerdp/codec/include/bitmap.h:415,10'
          Dst:             WriteFgBgImage8to8
        - Src:             'libfreerdp/codec/include/bitmap.h:425,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:429,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:432,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:437,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:441,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:444,5'
          Dst:             write_pixel_8
        - Src:             'libfreerdp/codec/include/bitmap.h:448,5'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RleDecompress16to16
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/include/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         691
      ICount:          2671
      EdgeCount:       813
      CyclomaticComplexity: 124
      functionsReached:
        - ExtractCodeId
        - ExtractRunLength
        - WLog_Print_dbg_tag
        - WriteFgBgImage16to16
        - WriteFirstLineFgBgImage16to16
        - buffer_within_range_
        - ensure_capacity_
        - winpr_int_assert
        - write_pixel_16
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/include/bitmap.h:214,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/include/bitmap.h:121,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/include/bitmap.h:128,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/include/bitmap.h:153,10'
          Dst:             ExtractCodeId
        - Src:             'libfreerdp/codec/include/bitmap.h:162,16'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:171,11'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:174,6'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:178,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:181,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:181,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:181,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:189,11'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:192,6'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:196,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:199,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:199,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:199,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:221,17'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:228,11'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:230,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:230,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:233,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:238,6'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:238,6'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:238,6'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:242,6'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:242,6'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:242,6'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:253,17'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:257,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:259,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:259,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:260,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:262,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:262,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:264,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:276,17'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:280,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:282,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:282,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:284,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:287,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:287,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:287,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:295,17'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:302,11'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:304,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:304,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:307,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:315,16'
          Dst:             WriteFirstLineFgBgImage16to16
        - Src:             'libfreerdp/codec/include/bitmap.h:329,16'
          Dst:             WriteFgBgImage16to16
        - Src:             'libfreerdp/codec/include/bitmap.h:340,11'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:347,11'
          Dst:             WriteFirstLineFgBgImage16to16
        - Src:             'libfreerdp/codec/include/bitmap.h:352,11'
          Dst:             WriteFgBgImage16to16
        - Src:             'libfreerdp/codec/include/bitmap.h:364,17'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:368,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:370,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:373,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:373,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:373,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:373,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:373,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:373,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:373,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:373,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/include/bitmap.h:373,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:381,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:388,10'
          Dst:             WriteFirstLineFgBgImage16to16
        - Src:             'libfreerdp/codec/include/bitmap.h:393,10'
          Dst:             WriteFgBgImage16to16
        - Src:             'libfreerdp/codec/include/bitmap.h:403,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:410,10'
          Dst:             WriteFirstLineFgBgImage16to16
        - Src:             'libfreerdp/codec/include/bitmap.h:415,10'
          Dst:             WriteFgBgImage16to16
        - Src:             'libfreerdp/codec/include/bitmap.h:425,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:429,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:432,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:437,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:441,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:444,5'
          Dst:             write_pixel_16
        - Src:             'libfreerdp/codec/include/bitmap.h:448,5'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RleDecompress24to24
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/include/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         523
      ICount:          2292
      EdgeCount:       621
      CyclomaticComplexity: 100
      functionsReached:
        - ExtractCodeId
        - ExtractRunLength
        - WLog_Print_dbg_tag
        - WriteFgBgImage24to24
        - WriteFirstLineFgBgImage24to24
        - buffer_within_range_
        - ensure_capacity_
        - write_pixel_24
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/include/bitmap.h:214,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/include/bitmap.h:121,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/include/bitmap.h:128,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/include/bitmap.h:153,10'
          Dst:             ExtractCodeId
        - Src:             'libfreerdp/codec/include/bitmap.h:162,16'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:171,11'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:174,6'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:178,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:181,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:181,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:181,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:189,11'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:192,6'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:196,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:199,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:199,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:199,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:221,17'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:228,11'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:233,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:238,6'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:238,6'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:238,6'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:242,6'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:242,6'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:242,6'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:253,17'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:257,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:260,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:264,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:267,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:276,17'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:280,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:284,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:287,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:287,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:287,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:295,17'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:302,11'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:307,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:315,16'
          Dst:             WriteFirstLineFgBgImage24to24
        - Src:             'libfreerdp/codec/include/bitmap.h:329,16'
          Dst:             WriteFgBgImage24to24
        - Src:             'libfreerdp/codec/include/bitmap.h:340,11'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:347,11'
          Dst:             WriteFirstLineFgBgImage24to24
        - Src:             'libfreerdp/codec/include/bitmap.h:352,11'
          Dst:             WriteFgBgImage24to24
        - Src:             'libfreerdp/codec/include/bitmap.h:364,17'
          Dst:             ExtractRunLength
        - Src:             'libfreerdp/codec/include/bitmap.h:368,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:370,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:373,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:373,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:373,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:381,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:388,10'
          Dst:             WriteFirstLineFgBgImage24to24
        - Src:             'libfreerdp/codec/include/bitmap.h:393,10'
          Dst:             WriteFgBgImage24to24
        - Src:             'libfreerdp/codec/include/bitmap.h:403,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:410,10'
          Dst:             WriteFirstLineFgBgImage24to24
        - Src:             'libfreerdp/codec/include/bitmap.h:415,10'
          Dst:             WriteFgBgImage24to24
        - Src:             'libfreerdp/codec/include/bitmap.h:425,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:429,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:432,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:437,10'
          Dst:             buffer_within_range_
        - Src:             'libfreerdp/codec/include/bitmap.h:441,10'
          Dst:             ensure_capacity_
        - Src:             'libfreerdp/codec/include/bitmap.h:444,5'
          Dst:             write_pixel_24
        - Src:             'libfreerdp/codec/include/bitmap.h:448,5'
          Dst:             WLog_Print_dbg_tag
    - functionName:    interleaved_decompress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/interleaved.c'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          345
      EdgeCount:       70
      CyclomaticComplexity: 17
      functionsReached:
        - RleDecompress16to16
        - RleDecompress24to24
        - RleDecompress8to8
        - WLog_Print_dbg_tag
        - freerdp_image_copy_no_overlap
        - winpr_aligned_recalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/interleaved.c:555,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/codec/interleaved.c:606,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/interleaved.c:543,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/interleaved.c:584,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/interleaved.c:596,7'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/codec/interleaved.c:602,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/interleaved.c:609,9'
          Dst:             RleDecompress24to24
        - Src:             'libfreerdp/codec/interleaved.c:612,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/interleaved.c:620,9'
          Dst:             RleDecompress16to16
        - Src:             'libfreerdp/codec/interleaved.c:623,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/interleaved.c:630,9'
          Dst:             RleDecompress8to8
        - Src:             'libfreerdp/codec/interleaved.c:633,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/interleaved.c:640,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/interleaved.c:644,7'
          Dst:             freerdp_image_copy_no_overlap
        - Src:             'libfreerdp/codec/interleaved.c:648,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    BitStream_GetRemainingLength
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/bitstream.h:172,3'
          Dst:             winpr_int_assert
    - functionName:    BitStream_Shift
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          204
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - BitStream_Prefetch
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/bitstream.h:101,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/bitstream.h:123,5'
          Dst:             BitStream_Prefetch
        - Src:             'winpr/include/winpr/bitstream.h:134,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    BitStream_Prefetch
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          155
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/bitstream.h:53,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:    27
      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:    progressive_rfx_srl_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1077
      functionLinenumberEnd: 1162
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         70
      ICount:          392
      EdgeCount:       85
      CyclomaticComplexity: 17
      functionsReached:
        - BitStream_Shift
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:1078,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:1081,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:1095,3'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/progressive.c:1119,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:1119,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:1120,5'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/progressive.c:1135,2'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/progressive.c:1151,3'
          Dst:             BitStream_Shift
    - functionName:    rawShift
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1193
      functionLinenumberEnd: 1200
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - BitStream_Shift
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:1194,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:1195,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:1199,2'
          Dst:             BitStream_Shift
    - functionName:    progressive_rfx_upgrade_state_finish
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1166
      functionLinenumberEnd: 1190
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          128
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - BitStream_GetRemainingLength
        - BitStream_Shift
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:1179,3'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/progressive.c:1184,3'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/progressive.c:1186,6'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/progressive.c:1187,3'
          Dst:             BitStream_Shift
    - functionName:    progressive_rfx_upgrade_block
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1208
      functionLinenumberEnd: 1256
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         85
      ICount:          415
      EdgeCount:       100
      CyclomaticComplexity: 17
      functionsReached:
        - progressive_rfx_srl_read
        - rawShift
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:1219,12'
          Dst:             rawShift
        - Src:             'libfreerdp/codec/progressive.c:1223,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:1223,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:1235,12'
          Dst:             rawShift
        - Src:             'libfreerdp/codec/progressive.c:1240,12'
          Dst:             rawShift
        - Src:             'libfreerdp/codec/progressive.c:1246,12'
          Dst:             progressive_rfx_srl_read
        - Src:             'libfreerdp/codec/progressive.c:1247,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:1247,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:1252,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:1252,19'
          Dst:             winpr_int_assert
    - functionName:    BitStream_Fetch
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          157
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - BitStream_Prefetch
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/bitstream.h:70,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/bitstream.h:82,3'
          Dst:             BitStream_Prefetch
    - functionName:    progressive_rfx_upgrade_component
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1266
      functionLinenumberEnd: 1329
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          380
      EdgeCount:       37
      CyclomaticComplexity: 13
      functionsReached:
        - BitStream_Attach
        - BitStream_Fetch
        - progressive_rfx_dwt_2d_decode
        - progressive_rfx_upgrade_block
        - progressive_rfx_upgrade_state_finish
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:1276,2'
          Dst:             BitStream_Attach
        - Src:             'libfreerdp/codec/progressive.c:1277,2'
          Dst:             BitStream_Fetch
        - Src:             'libfreerdp/codec/progressive.c:1278,2'
          Dst:             BitStream_Attach
        - Src:             'libfreerdp/codec/progressive.c:1279,2'
          Dst:             BitStream_Fetch
        - Src:             'libfreerdp/codec/progressive.c:1282,7'
          Dst:             progressive_rfx_upgrade_block
        - Src:             'libfreerdp/codec/progressive.c:1286,7'
          Dst:             progressive_rfx_upgrade_block
        - Src:             'libfreerdp/codec/progressive.c:1290,7'
          Dst:             progressive_rfx_upgrade_block
        - Src:             'libfreerdp/codec/progressive.c:1294,7'
          Dst:             progressive_rfx_upgrade_block
        - Src:             'libfreerdp/codec/progressive.c:1298,7'
          Dst:             progressive_rfx_upgrade_block
        - Src:             'libfreerdp/codec/progressive.c:1302,7'
          Dst:             progressive_rfx_upgrade_block
        - Src:             'libfreerdp/codec/progressive.c:1306,7'
          Dst:             progressive_rfx_upgrade_block
        - Src:             'libfreerdp/codec/progressive.c:1310,7'
          Dst:             progressive_rfx_upgrade_block
        - Src:             'libfreerdp/codec/progressive.c:1314,7'
          Dst:             progressive_rfx_upgrade_block
        - Src:             'libfreerdp/codec/progressive.c:1320,7'
          Dst:             progressive_rfx_upgrade_block
        - Src:             'libfreerdp/codec/progressive.c:1324,7'
          Dst:             progressive_rfx_upgrade_state_finish
        - Src:             'libfreerdp/codec/progressive.c:1327,9'
          Dst:             progressive_rfx_dwt_2d_decode
    - functionName:    progressive_rfx_dwt_2d_decode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 813
      functionLinenumberEnd: 848
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          170
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - BufferPool_Return
        - BufferPool_Take
        - primitives_get
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:814,30'
          Dst:             primitives_get
        - Src:             'libfreerdp/codec/progressive.c:832,24'
          Dst:             BufferPool_Take
        - Src:             'libfreerdp/codec/progressive.c:843,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:846,2'
          Dst:             BufferPool_Return
    - functionName:    progressive_rfx_quant_sub
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          307
      EdgeCount:       31
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    progressive_rfx_quant_cmp_equal
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          175
      EdgeCount:       31
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    progressive_rfx_decode_block
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 853
      functionLinenumberEnd: 858
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    20
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rfx_differential_decode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_differential.h'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          127
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_differential.h:34,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_differential.h:34,12'
          Dst:             winpr_int_assert
    - functionName:    progressive_rfx_decode_component
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 867
      functionLinenumberEnd: 927
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          409
      EdgeCount:       71
      CyclomaticComplexity: 24
      functionsReached:
        - primitives_get
        - progressive_rfx_decode_block
        - progressive_rfx_dwt_2d_decode
        - rfx_differential_decode
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:869,30'
          Dst:             primitives_get
        - Src:             'libfreerdp/codec/progressive.c:879,3'
          Dst:             rfx_differential_decode
        - Src:             'libfreerdp/codec/progressive.c:880,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:882,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:884,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:886,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:888,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:890,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:892,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:894,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:896,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:898,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:903,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:905,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:907,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:909,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:911,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:913,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:915,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:917,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:919,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:921,3'
          Dst:             rfx_differential_decode
        - Src:             'libfreerdp/codec/progressive.c:922,8'
          Dst:             progressive_rfx_decode_block
        - Src:             'libfreerdp/codec/progressive.c:925,9'
          Dst:             progressive_rfx_dwt_2d_decode
    - functionName:    progressive_rfx_quant_lsub
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          225
      EdgeCount:       31
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    progressive_rfx_quant_add
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          140
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    progressive_decompress_tile_upgrade
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1336
      functionLinenumberEnd: 1513
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          686
      EdgeCount:       88
      CyclomaticComplexity: 23
      functionsReached:
        - BufferPool_Return
        - BufferPool_Take
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - primitives_get
        - progressive_rfx_quant_add
        - progressive_rfx_quant_cmp_equal
        - progressive_rfx_quant_lsub
        - progressive_rfx_quant_sub
        - progressive_rfx_upgrade_component
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:1362,30'
          Dst:             primitives_get
        - Src:             'libfreerdp/codec/progressive.c:1383,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:1391,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:1400,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:1415,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:1427,7'
          Dst:             progressive_rfx_quant_cmp_equal
        - Src:             'libfreerdp/codec/progressive.c:1428,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1428,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1430,7'
          Dst:             progressive_rfx_quant_cmp_equal
        - Src:             'libfreerdp/codec/progressive.c:1431,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1431,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1433,7'
          Dst:             progressive_rfx_quant_cmp_equal
        - Src:             'libfreerdp/codec/progressive.c:1434,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1434,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1437,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:1439,2'
          Dst:             progressive_rfx_quant_add
        - Src:             'libfreerdp/codec/progressive.c:1440,2'
          Dst:             progressive_rfx_quant_add
        - Src:             'libfreerdp/codec/progressive.c:1441,2'
          Dst:             progressive_rfx_quant_add
        - Src:             'libfreerdp/codec/progressive.c:1442,7'
          Dst:             progressive_rfx_quant_sub
        - Src:             'libfreerdp/codec/progressive.c:1444,7'
          Dst:             progressive_rfx_quant_sub
        - Src:             'libfreerdp/codec/progressive.c:1446,7'
          Dst:             progressive_rfx_quant_sub
        - Src:             'libfreerdp/codec/progressive.c:1448,2'
          Dst:             progressive_rfx_quant_add
        - Src:             'libfreerdp/codec/progressive.c:1449,7'
          Dst:             progressive_rfx_quant_lsub
        - Src:             'libfreerdp/codec/progressive.c:1451,2'
          Dst:             progressive_rfx_quant_add
        - Src:             'libfreerdp/codec/progressive.c:1452,7'
          Dst:             progressive_rfx_quant_lsub
        - Src:             'libfreerdp/codec/progressive.c:1454,2'
          Dst:             progressive_rfx_quant_add
        - Src:             'libfreerdp/codec/progressive.c:1455,7'
          Dst:             progressive_rfx_quant_lsub
        - Src:             'libfreerdp/codec/progressive.c:1476,19'
          Dst:             BufferPool_Take
        - Src:             'libfreerdp/codec/progressive.c:1481,11'
          Dst:             progressive_rfx_upgrade_component
        - Src:             'libfreerdp/codec/progressive.c:1489,11'
          Dst:             progressive_rfx_upgrade_component
        - Src:             'libfreerdp/codec/progressive.c:1497,11'
          Dst:             progressive_rfx_upgrade_component
        - Src:             'libfreerdp/codec/progressive.c:1511,2'
          Dst:             BufferPool_Return
    - functionName:    progressive_decompress_tile_first
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 934
      functionLinenumberEnd: 1073
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          481
      EdgeCount:       39
      CyclomaticComplexity: 13
      functionsReached:
        - BufferPool_Return
        - BufferPool_Take
        - WLog_Print_dbg_tag
        - primitives_get
        - progressive_rfx_decode_component
        - progressive_rfx_quant_add
        - progressive_rfx_quant_lsub
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:954,30'
          Dst:             primitives_get
        - Src:             'libfreerdp/codec/progressive.c:973,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:981,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:990,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:1005,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:1024,2'
          Dst:             progressive_rfx_quant_add
        - Src:             'libfreerdp/codec/progressive.c:1025,2'
          Dst:             progressive_rfx_quant_add
        - Src:             'libfreerdp/codec/progressive.c:1026,2'
          Dst:             progressive_rfx_quant_add
        - Src:             'libfreerdp/codec/progressive.c:1027,2'
          Dst:             progressive_rfx_quant_add
        - Src:             'libfreerdp/codec/progressive.c:1028,7'
          Dst:             progressive_rfx_quant_lsub
        - Src:             'libfreerdp/codec/progressive.c:1030,2'
          Dst:             progressive_rfx_quant_add
        - Src:             'libfreerdp/codec/progressive.c:1031,7'
          Dst:             progressive_rfx_quant_lsub
        - Src:             'libfreerdp/codec/progressive.c:1033,2'
          Dst:             progressive_rfx_quant_add
        - Src:             'libfreerdp/codec/progressive.c:1034,7'
          Dst:             progressive_rfx_quant_lsub
        - Src:             'libfreerdp/codec/progressive.c:1045,19'
          Dst:             BufferPool_Take
        - Src:             'libfreerdp/codec/progressive.c:1050,7'
          Dst:             progressive_rfx_decode_component
        - Src:             'libfreerdp/codec/progressive.c:1054,7'
          Dst:             progressive_rfx_decode_component
        - Src:             'libfreerdp/codec/progressive.c:1059,7'
          Dst:             progressive_rfx_decode_component
        - Src:             'libfreerdp/codec/progressive.c:1071,2'
          Dst:             BufferPool_Return
    - functionName:    progressive_surface_tile_replace
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          382
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Print_dbg_tag
        - progressive_allocate_tile_cache
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:475,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:522,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:532,9'
          Dst:             progressive_allocate_tile_cache
    - functionName:    progressive_allocate_tile_cache
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          175
      EdgeCount:       38
      CyclomaticComplexity: 8
      functionsReached:
        - progressive_tile_new
        - winpr_aligned_recalloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:401,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:402,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:411,14'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/codec/progressive.c:420,23'
          Dst:             progressive_tile_new
        - Src:             'libfreerdp/codec/progressive.c:426,6'
          Dst:             winpr_aligned_recalloc
    - functionName:    progressive_tile_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          107
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - progressive_tile_free
        - winpr_aligned_calloc
        - winpr_aligned_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:358,31'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/progressive.c:368,23'
          Dst:             winpr_aligned_malloc
        - Src:             'libfreerdp/codec/progressive.c:376,23'
          Dst:             winpr_aligned_malloc
        - Src:             'libfreerdp/codec/progressive.c:384,26'
          Dst:             winpr_aligned_malloc
        - Src:             'libfreerdp/codec/progressive.c:392,2'
          Dst:             progressive_tile_free
    - functionName:    progressive_tile_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_aligned_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:328,3'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/progressive.c:329,3'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/progressive.c:330,3'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/progressive.c:331,3'
          Dst:             winpr_aligned_free
    - functionName:    progressive_process_tiles_tile_work_callback
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1658
      functionLinenumberEnd: 1682
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          113
      EdgeCount:       16
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - progressive_decompress_tile_first
        - progressive_decompress_tile_upgrade
        - rfx_get_progressive_block_type_string
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/progressive.c:1664,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:1668,4'
          Dst:             progressive_decompress_tile_first
        - Src:             'libfreerdp/codec/progressive.c:1673,4'
          Dst:             progressive_decompress_tile_upgrade
        - Src:             'libfreerdp/codec/progressive.c:1677,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1677,4'
          Dst:             rfx_get_progressive_block_type_string
        - Src:             'libfreerdp/codec/progressive.c:1677,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    progressive_tile_read_upgrade
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1520
      functionLinenumberEnd: 1591
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         84
      ICount:          387
      EdgeCount:       97
      CyclomaticComplexity: 15
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Pointer
        - Stream_SafeSeekEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - progressive_surface_tile_replace
        - stream_read_u16_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:1524,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/codec/progressive.c:1531,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:1532,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:1533,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:1534,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1535,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1536,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:1537,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1538,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1539,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1540,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1541,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1542,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1544,18'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/progressive.c:1545,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/codec/progressive.c:1547,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1547,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1551,18'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/progressive.c:1552,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/codec/progressive.c:1554,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1554,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1558,19'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/progressive.c:1559,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/codec/progressive.c:1561,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1561,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1566,19'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/progressive.c:1567,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/codec/progressive.c:1569,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1569,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1574,19'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/progressive.c:1575,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/codec/progressive.c:1577,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1577,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1582,19'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/progressive.c:1583,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/codec/progressive.c:1585,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1585,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1590,9'
          Dst:             progressive_surface_tile_replace
    - 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:    21
      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:    25
      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_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1292,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_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:    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:    progressive_tile_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1599
      functionLinenumberEnd: 1654
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - short
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          316
      EdgeCount:       77
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Pointer
        - Stream_SafeSeekEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - progressive_surface_tile_replace
        - stream_read_u16_le
        - stream_read_u8
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:1603,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/codec/progressive.c:1609,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:1610,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:1611,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:1612,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1613,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1614,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:1617,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:1620,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1621,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1622,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1623,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1625,15'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/progressive.c:1626,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/codec/progressive.c:1628,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1628,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1632,16'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/progressive.c:1633,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/codec/progressive.c:1635,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1635,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1639,16'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/progressive.c:1640,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/codec/progressive.c:1642,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1642,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1646,18'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/progressive.c:1647,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/codec/progressive.c:1649,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1649,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1653,9'
          Dst:             progressive_surface_tile_replace
    - functionName:    progressive_process_tiles
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1690
      functionLinenumberEnd: 1832
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         134
      ICount:          681
      EdgeCount:       160
      CyclomaticComplexity: 28
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetPosition
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - progressive_process_tiles_tile_work_callback
        - progressive_tile_read
        - progressive_tile_read_upgrade
        - rfx_get_progressive_block_type_string
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_CloseThreadpoolWork
        - winpr_CreateThreadpoolWork
        - winpr_SubmitThreadpoolWork
        - winpr_WaitForThreadpoolWorkCallbacks
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/progressive.c:1727,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:1693,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/codec/progressive.c:1699,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:1700,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:1702,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/codec/progressive.c:1705,10'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/codec/progressive.c:1706,34'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/codec/progressive.c:1708,22'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/codec/progressive.c:1710,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1711,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/progressive.c:1720,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1720,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1724,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/codec/progressive.c:1730,10'
          Dst:             progressive_tile_read
        - Src:             'libfreerdp/codec/progressive.c:1736,10'
          Dst:             progressive_tile_read
        - Src:             'libfreerdp/codec/progressive.c:1742,10'
          Dst:             progressive_tile_read_upgrade
        - Src:             'libfreerdp/codec/progressive.c:1747,5'
          Dst:             rfx_get_progressive_block_type_string
        - Src:             'libfreerdp/codec/progressive.c:1747,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:1752,16'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/codec/progressive.c:1755,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1755,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1762,8'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/codec/progressive.c:1765,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1765,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1773,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1773,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1790,37'
          Dst:             winpr_CreateThreadpoolWork
        - Src:             'libfreerdp/codec/progressive.c:1790,37'
          Dst:             progressive_process_tiles_tile_work_callback
        - Src:             'libfreerdp/codec/progressive.c:1794,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1794,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1800,4'
          Dst:             winpr_SubmitThreadpoolWork
        - Src:             'libfreerdp/codec/progressive.c:1802,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:1802,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:1806,4'
          Dst:             progressive_process_tiles_tile_work_callback
        - Src:             'libfreerdp/codec/progressive.c:1811,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1811,4'
          Dst:             rfx_get_progressive_block_type_string
        - Src:             'libfreerdp/codec/progressive.c:1811,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1821,4'
          Dst:             winpr_WaitForThreadpoolWorkCallbacks
        - Src:             'libfreerdp/codec/progressive.c:1822,4'
          Dst:             winpr_CloseThreadpoolWork
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,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:    5
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:114,3'
          Dst:             winpr_int_assert
    - functionName:    progressive_rfx_quant_lcmp_less_equal
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          145
      EdgeCount:       31
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    progressive_rfx_quant_lcmp_greater_equal
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          145
      EdgeCount:       31
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    progressive_component_codec_quant_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          115
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u8
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:64,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:67,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:70,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:73,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:76,2'
          Dst:             stream_read_u8
    - functionName:    progressive_wb_read_region_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2028
      functionLinenumberEnd: 2110
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         117
      ICount:          535
      EdgeCount:       138
      CyclomaticComplexity: 23
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:2031,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/codec/progressive.c:2036,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:2037,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:2038,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:2039,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:2040,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:2041,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:2042,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/progressive.c:2046,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:2046,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:2053,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:2053,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:2060,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:2060,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:2066,21'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/codec/progressive.c:2066,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2066,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2074,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:2074,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:2082,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:2082,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:2090,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:2090,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:2098,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:2098,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:2105,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:2105,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    progressive_wb_skip_region
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2115
      functionLinenumberEnd: 2127
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          126
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_SafeSeekEx
        - progressive_wb_read_region_header
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:2119,6'
          Dst:             progressive_wb_read_region_header
        - Src:             'libfreerdp/codec/progressive.c:2123,7'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2123,7'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2123,7'
          Dst:             Stream_SafeSeekEx
    - functionName:    progressive_wb_region
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2134
      functionLinenumberEnd: 2248
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         110
      ICount:          620
      EdgeCount:       132
      CyclomaticComplexity: 24
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - progressive_component_codec_quant_read
        - progressive_process_tiles
        - progressive_rfx_quant_lcmp_greater_equal
        - progressive_rfx_quant_lcmp_less_equal
        - progressive_wb_read_region_header
        - progressive_wb_skip_region
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:2148,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:2149,10'
          Dst:             progressive_wb_skip_region
        - Src:             'libfreerdp/codec/progressive.c:2153,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:2154,10'
          Dst:             progressive_wb_skip_region
        - Src:             'libfreerdp/codec/progressive.c:2159,7'
          Dst:             progressive_wb_read_region_header
        - Src:             'libfreerdp/codec/progressive.c:2166,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:2167,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:2168,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:2169,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:2175,3'
          Dst:             progressive_component_codec_quant_read
        - Src:             'libfreerdp/codec/progressive.c:2177,8'
          Dst:             progressive_rfx_quant_lcmp_greater_equal
        - Src:             'libfreerdp/codec/progressive.c:2179,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:2179,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:2184,8'
          Dst:             progressive_rfx_quant_lcmp_less_equal
        - Src:             'libfreerdp/codec/progressive.c:2186,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:2186,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:2196,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:2198,3'
          Dst:             progressive_component_codec_quant_read
        - Src:             'libfreerdp/codec/progressive.c:2199,3'
          Dst:             progressive_component_codec_quant_read
        - Src:             'libfreerdp/codec/progressive.c:2200,3'
          Dst:             progressive_component_codec_quant_read
        - Src:             'libfreerdp/codec/progressive.c:2212,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2212,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2213,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2213,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2244,22'
          Dst:             progressive_process_tiles
    - functionName:    progressive_wb_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1979
      functionLinenumberEnd: 2022
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          193
      EdgeCount:       43
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:1986,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1986,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1992,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/codec/progressive.c:1995,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:1996,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1997,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/progressive.c:2000,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:2004,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:2009,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:2011,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:2013,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    progressive_wb_frame_end
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1941
      functionLinenumberEnd: 1974
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          138
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:1949,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1949,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1955,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/codec/progressive.c:1957,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1957,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/codec/progressive.c:1957,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1968,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:1970,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    progressive_wb_frame_begin
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1889
      functionLinenumberEnd: 1936
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          122
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:1897,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1897,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1903,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/codec/progressive.c:1906,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/progressive.c:1907,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1923,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:1929,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    progressive_wb_sync
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1837
      functionLinenumberEnd: 1884
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          185
      EdgeCount:       48
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:1847,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1847,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1853,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/codec/progressive.c:1860,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/progressive.c:1861,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:1865,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1865,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1873,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:1873,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:1880,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    clampi16
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 592
      functionLinenumberEnd: 598
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    20
      BranchProfiles:  []
      Callsites:       []
    - functionName:    progressive_rfx_idwt_y
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      void
      argCount:        9
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          309
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - clampi16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:685,16'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:686,16'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:694,9'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:695,9'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:710,11'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:715,10'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:718,11'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:727,9'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:730,10'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:735,10'
          Dst:             clampi16
    - functionName:    progressive_rfx_idwt_x
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 604
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      void
      argCount:        9
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          293
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - clampi16
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:615,14'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:616,14'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:624,9'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:625,9'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:638,13'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:644,10'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:646,13'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:654,9'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:656,12'
          Dst:             clampi16
        - Src:             'libfreerdp/codec/progressive.c:660,12'
          Dst:             clampi16
    - functionName:    progressive_rfx_get_band_h_count
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 750
      functionLinenumberEnd: 755
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    progressive_rfx_get_band_l_count
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 745
      functionLinenumberEnd: 746
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    progressive_context_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2689
      functionLinenumberEnd: 2701
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - BufferPool_Free
        - HashTable_Free
        - Stream_Free
        - rfx_context_free
        - winpr_aligned_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:2693,2'
          Dst:             Stream_Free
        - Src:             'libfreerdp/codec/progressive.c:2694,2'
          Dst:             Stream_Free
        - Src:             'libfreerdp/codec/progressive.c:2695,2'
          Dst:             rfx_context_free
        - Src:             'libfreerdp/codec/progressive.c:2697,2'
          Dst:             BufferPool_Free
        - Src:             'libfreerdp/codec/progressive.c:2698,2'
          Dst:             HashTable_Free
        - Src:             'libfreerdp/codec/progressive.c:2700,2'
          Dst:             winpr_aligned_free
    - functionName:    progressive_context_new_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2646
      functionLinenumberEnd: 2686
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          147
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - BufferPool_New
        - HashTable_New
        - HashTable_ValueObject
        - Stream_New
        - WLog_Get
        - progressive_context_free
        - rfx_context_new_ex
        - winpr_aligned_calloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:2648,28'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/progressive.c:2655,21'
          Dst:             WLog_Get
        - Src:             'libfreerdp/codec/progressive.c:2658,29'
          Dst:             rfx_context_new_ex
        - Src:             'libfreerdp/codec/progressive.c:2661,24'
          Dst:             Stream_New
        - Src:             'libfreerdp/codec/progressive.c:2664,23'
          Dst:             Stream_New
        - Src:             'libfreerdp/codec/progressive.c:2667,28'
          Dst:             BufferPool_New
        - Src:             'libfreerdp/codec/progressive.c:2670,33'
          Dst:             HashTable_New
        - Src:             'libfreerdp/codec/progressive.c:2675,18'
          Dst:             HashTable_ValueObject
        - Src:             'libfreerdp/codec/progressive.c:2676,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2683,2'
          Dst:             progressive_context_free
    - functionName:    progressive_surface_context_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - progressive_tile_free
        - winpr_aligned_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:347,4'
          Dst:             progressive_tile_free
        - Src:             'libfreerdp/codec/progressive.c:351,2'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/progressive.c:352,2'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/progressive.c:353,2'
          Dst:             winpr_aligned_free
    - functionName:    progressive_context_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2641
      functionLinenumberEnd: 2642
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - progressive_context_new_ex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:2642,9'
          Dst:             progressive_context_new_ex
    - functionName:    progressive_context_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2636
      functionLinenumberEnd: 2637
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Stream_ResetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1358,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    progressive_compress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2507
      functionLinenumberEnd: 2633
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         250
      ICount:          1094
      EdgeCount:       287
      CyclomaticComplexity: 39
      functionsReached:
        - Stream_Buffer
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_ResetPosition
        - WLog_Print_dbg_tag
        - progressive_rfx_write_message_progressive_simple
        - region16_n_rects
        - region16_rects
        - rfx_context_set_pixel_format
        - rfx_encode_message
        - rfx_message_free
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/progressive.c:2522,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:2549,18'
          Dst:             region16_n_rects
        - Src:             'libfreerdp/codec/progressive.c:2550,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2550,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2556,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/codec/progressive.c:2558,10'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/codec/progressive.c:2561,38'
          Dst:             region16_rects
        - Src:             'libfreerdp/codec/progressive.c:2584,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2585,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2586,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2586,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2586,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2586,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2587,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2587,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2587,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2587,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2597,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2598,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2599,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2600,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2604,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/codec/progressive.c:2608,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2608,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2609,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2609,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2610,2'
          Dst:             rfx_context_set_pixel_format
        - Src:             'libfreerdp/codec/progressive.c:2611,12'
          Dst:             rfx_encode_message
        - Src:             'libfreerdp/codec/progressive.c:2615,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:2619,7'
          Dst:             progressive_rfx_write_message_progressive_simple
        - Src:             'libfreerdp/codec/progressive.c:2620,2'
          Dst:             rfx_message_free
        - Src:             'libfreerdp/codec/progressive.c:2625,22'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/codec/progressive.c:2626,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2629,15'
          Dst:             Stream_Buffer
    - functionName:    progressive_rfx_write_message_progressive_simple
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2492
      functionLinenumberEnd: 2499
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          66
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - rfx_write_message_progressive_simple
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:2495,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2496,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2497,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2499,9'
          Dst:             rfx_write_message_progressive_simple
    - functionName:    update_tiles
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2325
      functionLinenumberEnd: 2416
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         97
      ICount:          589
      EdgeCount:       115
      CyclomaticComplexity: 20
      functionsReached:
        - freerdp_image_copy_no_overlap
        - region16_init
        - region16_intersect_rect
        - region16_rects
        - region16_uninit
        - region16_union_rect
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:2328,2'
          Dst:             region16_init
        - Src:             'libfreerdp/codec/progressive.c:2339,8'
          Dst:             region16_union_rect
        - Src:             'libfreerdp/codec/progressive.c:2341,4'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/progressive.c:2352,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2355,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2357,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2360,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2360,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2363,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2363,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2368,3'
          Dst:             region16_init
        - Src:             'libfreerdp/codec/progressive.c:2369,8'
          Dst:             region16_intersect_rect
        - Src:             'libfreerdp/codec/progressive.c:2371,4'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/progressive.c:2374,17'
          Dst:             region16_rects
        - Src:             'libfreerdp/codec/progressive.c:2391,9'
          Dst:             freerdp_image_copy_no_overlap
        - Src:             'libfreerdp/codec/progressive.c:2399,10'
          Dst:             region16_union_rect
        - Src:             'libfreerdp/codec/progressive.c:2401,6'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/progressive.c:2407,3'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/progressive.c:2414,2'
          Dst:             region16_uninit
    - functionName:    progressive_parse_block
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2254
      functionLinenumberEnd: 2317
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          230
      EdgeCount:       51
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
        - Stream_Pointer
        - Stream_Seek
        - Stream_StaticConstInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - progressive_wb_context
        - progressive_wb_frame_begin
        - progressive_wb_frame_end
        - progressive_wb_region
        - progressive_wb_sync
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/progressive.c:2278,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:2260,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2262,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/codec/progressive.c:2265,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/progressive.c:2266,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/progressive.c:2270,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/progressive.c:2273,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/codec/progressive.c:2275,31'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/progressive.c:2275,2'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/codec/progressive.c:2276,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/codec/progressive.c:2281,9'
          Dst:             progressive_wb_sync
        - Src:             'libfreerdp/codec/progressive.c:2285,9'
          Dst:             progressive_wb_frame_begin
        - Src:             'libfreerdp/codec/progressive.c:2289,9'
          Dst:             progressive_wb_frame_end
        - Src:             'libfreerdp/codec/progressive.c:2293,9'
          Dst:             progressive_wb_context
        - Src:             'libfreerdp/codec/progressive.c:2297,9'
          Dst:             progressive_wb_region
        - Src:             'libfreerdp/codec/progressive.c:2301,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:2301,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:2308,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/codec/progressive.c:2310,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:2310,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/codec/progressive.c:2310,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    progressive_decompress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2423
      functionLinenumberEnd: 2487
      functionDepth:   0
      returnType:      int
      argCount:        11
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          274
      EdgeCount:       65
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_GetPosition
        - Stream_GetRemainingLength
        - Stream_StaticConstInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - progressive_get_surface_data
        - progressive_parse_block
        - update_tiles
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/progressive.c:2449,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:2426,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2427,41'
          Dst:             progressive_get_surface_data
        - Src:             'libfreerdp/codec/progressive.c:2431,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:2431,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:2437,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2446,15'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/codec/progressive.c:2447,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:2462,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/codec/progressive.c:2464,9'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/codec/progressive.c:2466,7'
          Dst:             progressive_parse_block
        - Src:             'libfreerdp/codec/progressive.c:2471,22'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/codec/progressive.c:2474,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/progressive.c:2474,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/progressive.c:2482,7'
          Dst:             update_tiles
    - functionName:    progressive_get_surface_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - HashTable_GetItemValue
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:321,9'
          Dst:             HashTable_GetItemValue
    - functionName:    progressive_rfx_dwt_2d_decode_block
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 759
      functionLinenumberEnd: 798
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          137
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - progressive_rfx_get_band_h_count
        - progressive_rfx_get_band_l_count
        - progressive_rfx_idwt_x
        - progressive_rfx_idwt_y
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:770,24'
          Dst:             progressive_rfx_get_band_l_count
        - Src:             'libfreerdp/codec/progressive.c:771,24'
          Dst:             progressive_rfx_get_band_h_count
        - Src:             'libfreerdp/codec/progressive.c:790,2'
          Dst:             progressive_rfx_idwt_x
        - Src:             'libfreerdp/codec/progressive.c:793,2'
          Dst:             progressive_rfx_idwt_x
        - Src:             'libfreerdp/codec/progressive.c:796,2'
          Dst:             progressive_rfx_idwt_y
    - functionName:    rfx_dwt_2d_extrapolate_decode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 801
      functionLinenumberEnd: 807
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          54
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - progressive_rfx_dwt_2d_decode_block
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:802,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:803,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/progressive.c:804,2'
          Dst:             progressive_rfx_dwt_2d_decode_block
        - Src:             'libfreerdp/codec/progressive.c:805,2'
          Dst:             progressive_rfx_dwt_2d_decode_block
        - Src:             'libfreerdp/codec/progressive.c:806,2'
          Dst:             progressive_rfx_dwt_2d_decode_block
    - functionName:    progressive_delete_surface_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 570
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - progressive_set_surface_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:568,2'
          Dst:             progressive_set_surface_data
    - functionName:    progressive_set_surface_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - HashTable_Insert
        - HashTable_Remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:307,10'
          Dst:             HashTable_Insert
        - Src:             'libfreerdp/codec/progressive.c:309,2'
          Dst:             HashTable_Remove
    - functionName:    progressive_surface_context_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - short
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          92
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - progressive_allocate_tile_cache
        - progressive_surface_context_free
        - winpr_aligned_calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:438,71'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/progressive.c:451,7'
          Dst:             progressive_allocate_tile_cache
        - Src:             'libfreerdp/codec/progressive.c:453,3'
          Dst:             progressive_surface_context_free
    - functionName:    progressive_create_surface_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/progressive.c'
      linkageType:     InternalLinkage
      functionLinenumber: 545
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - progressive_get_surface_data
        - progressive_set_surface_data
        - progressive_surface_context_free
        - progressive_surface_context_new
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/progressive.c:546,41'
          Dst:             progressive_get_surface_data
        - Src:             'libfreerdp/codec/progressive.c:550,13'
          Dst:             progressive_surface_context_new
        - Src:             'libfreerdp/codec/progressive.c:555,8'
          Dst:             progressive_set_surface_data
        - Src:             'libfreerdp/codec/progressive.c:557,4'
          Dst:             progressive_surface_context_free
    - functionName:    rfx_write_progressive_tile_simple
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2416
      functionLinenumberEnd: 2443
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         180
      ICount:          496
      EdgeCount:       181
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:2418,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2419,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2420,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2423,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/codec/rfx.c:2426,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2427,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2427,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2427,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2428,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2428,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2428,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2429,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2429,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2429,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2430,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2430,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2430,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2431,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2431,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2431,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2432,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2432,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2432,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2433,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2434,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2435,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2436,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2436,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2436,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2437,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2438,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/codec/rfx.c:2439,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/codec/rfx.c:2440,2'
          Dst:             Stream_Write
    - 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:    53
      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_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:    21
      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_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:    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:    6
      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_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:    8
      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_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_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    rfx_write_tile
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1557
      functionLinenumberEnd: 1578
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         144
      ICount:          431
      EdgeCount:       146
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - rfx_tile_length
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1558,26'
          Dst:             rfx_tile_length
        - Src:             'libfreerdp/codec/rfx.c:1561,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/codec/rfx.c:1564,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1565,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1565,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1565,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1566,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1566,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1566,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1567,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1567,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1567,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1568,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1568,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1568,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1569,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1569,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1569,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1570,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1570,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1570,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1571,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1571,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1571,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1572,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1572,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1572,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1573,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1573,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1573,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1574,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/codec/rfx.c:1575,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/codec/rfx.c:1576,2'
          Dst:             Stream_Write
    - functionName:    rfx_tile_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1551
      functionLinenumberEnd: 1553
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1552,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_message_get_rect_const
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 378
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          67
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:375,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:376,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:377,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_write_message_channels
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1503
      functionLinenumberEnd: 1512
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          156
      EdgeCount:       77
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1504,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1506,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1507,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1508,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1509,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1510,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1510,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1510,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1511,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1511,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1511,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    rfx_write_message_codec_versions
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1491
      functionLinenumberEnd: 1499
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         59
      ICount:          90
      EdgeCount:       59
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1494,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1495,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1496,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1497,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1498,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    rfx_write_message_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1516
      functionLinenumberEnd: 1534
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         83
      ICount:          171
      EdgeCount:       83
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - rfx_update_context_properties
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1518,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1520,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1521,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1522,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1523,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1524,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1525,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1532,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1532,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1532,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1533,2'
          Dst:             rfx_update_context_properties
    - functionName:    rfx_update_context_properties
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1462
      functionLinenumberEnd: 1474
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          73
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1465,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_write_message_sync
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1479
      functionLinenumberEnd: 1486
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         49
      ICount:          78
      EdgeCount:       49
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1480,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1482,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1483,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1484,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:1485,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    rfx_clone_rects
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1909
      functionLinenumberEnd: 1928
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          142
      EdgeCount:       39
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_aligned_calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1910,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1911,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1913,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1914,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1919,15'
          Dst:             winpr_aligned_calloc
    - functionName:    rfx_clone_quants
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1932
      functionLinenumberEnd: 1947
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          100
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1933,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1934,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1936,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1937,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_process_message_tile_work_callback
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 779
      functionLinenumberEnd: 787
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          116
      EdgeCount:       33
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rfx_decode_rgb
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:781,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:782,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:783,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:785,7'
          Dst:             rfx_decode_rgb
        - Src:             'libfreerdp/codec/rfx.c:786,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:786,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    Stream_Seek_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1203
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1204,3'
          Dst:             Stream_Seek
    - functionName:    rfx_message_get_rect
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 386
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          67
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:383,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:384,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:385,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_resize_rects
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 670
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          54
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_aligned_recalloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:671,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:674,6'
          Dst:             winpr_aligned_recalloc
    - functionName:    Stream_Seek_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1199
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1200,3'
          Dst:             Stream_Seek
    - 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_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:    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:    rfx_write_progressive_frame_end
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2399
      functionLinenumberEnd: 2411
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          82
      EdgeCount:       39
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:2401,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2402,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2404,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/codec/rfx.c:2407,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2408,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    rfx_write_progressive_region
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2300
      functionLinenumberEnd: 2374
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         290
      ICount:          965
      EdgeCount:       296
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - rfx_write_progressive_tile_simple
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:2304,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/codec/rfx.c:2306,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2307,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2308,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2316,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2321,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/codec/rfx.c:2324,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2325,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2325,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2325,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2326,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2327,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2327,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2327,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2328,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2329,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2329,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2329,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2330,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2331,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2332,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2332,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2332,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2333,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2333,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2333,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2339,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2339,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2339,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2340,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2340,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2340,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2341,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2341,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2341,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2342,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2342,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2342,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2357,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2357,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2357,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2358,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2358,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2358,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2359,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2359,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2359,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2360,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2360,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2360,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2361,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2361,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2361,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2367,8'
          Dst:             rfx_write_progressive_tile_simple
        - Src:             'libfreerdp/codec/rfx.c:2371,21'
          Dst:             Stream_GetPosition
    - functionName:    rfx_write_progressive_frame_begin
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2379
      functionLinenumberEnd: 2394
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          145
      EdgeCount:       69
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:2381,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2383,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2385,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/codec/rfx.c:2388,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2389,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2390,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2390,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2390,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2391,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    rfx_write_progressive_wb_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2281
      functionLinenumberEnd: 2295
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         68
      ICount:          118
      EdgeCount:       69
      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:             'libfreerdp/codec/rfx.c:2283,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2284,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2286,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/codec/rfx.c:2289,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2290,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2291,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2292,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2293,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    rfx_write_progressive_wb_sync
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2263
      functionLinenumberEnd: 2276
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          106
      EdgeCount:       59
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:2265,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2266,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2268,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/codec/rfx.c:2271,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2272,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2273,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2274,2'
          Dst:             Stream_Write_UINT16_unchecked
    - 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:    rfx_write_message_progressive_simple
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2481
      functionLinenumberEnd: 2508
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          129
      EdgeCount:       40
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - rfx_write_progressive_frame_begin
        - rfx_write_progressive_frame_end
        - rfx_write_progressive_region
        - rfx_write_progressive_wb_context
        - rfx_write_progressive_wb_sync
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:2482,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2483,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2484,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2488,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/rfx.c:2492,7'
          Dst:             rfx_write_progressive_wb_sync
        - Src:             'libfreerdp/codec/rfx.c:2495,7'
          Dst:             rfx_write_progressive_wb_context
        - Src:             'libfreerdp/codec/rfx.c:2498,7'
          Dst:             rfx_write_progressive_frame_begin
        - Src:             'libfreerdp/codec/rfx.c:2501,7'
          Dst:             rfx_write_progressive_region
        - Src:             'libfreerdp/codec/rfx.c:2504,7'
          Dst:             rfx_write_progressive_frame_end
    - functionName:    rfx_get_progressive_block_type_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2446
      functionLinenumberEnd: 2476
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       20
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/rfx.c:2447,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    rfx_message_get_frame_idx
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2256
      functionLinenumberEnd: 2258
      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:             'libfreerdp/codec/rfx.c:2257,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_context_get_frame_idx
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2250
      functionLinenumberEnd: 2252
      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:             'libfreerdp/codec/rfx.c:2251,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_context_get_mode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2244
      functionLinenumberEnd: 2246
      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:             'libfreerdp/codec/rfx.c:2245,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_context_set_mode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2237
      functionLinenumberEnd: 2240
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:2238,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_compose_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2224
      functionLinenumberEnd: 2234
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - rfx_encode_message
        - rfx_message_free
        - rfx_write_message
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:2225,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2227,6'
          Dst:             rfx_encode_message
        - Src:             'libfreerdp/codec/rfx.c:2231,19'
          Dst:             rfx_write_message
        - Src:             'libfreerdp/codec/rfx.c:2232,2'
          Dst:             rfx_message_free
    - functionName:    rfx_encode_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1663
      functionLinenumberEnd: 1905
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - int
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         357
      ICount:          1734
      EdgeCount:       418
      CyclomaticComplexity: 63
      functionsReached:
        - BufferPool_Take
        - ObjectPool_Take
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - computeRegion
        - region16_extents
        - region16_init
        - region16_intersects_rect
        - region16_rects
        - region16_uninit
        - region16_union_rect
        - rfx_compose_message_tile_work_callback
        - rfx_encode_rgb
        - rfx_ensure_tiles
        - rfx_message_free
        - rfx_tile_length
        - rfx_update_context_properties
        - setupWorkers
        - winpr_CloseThreadpoolWork
        - winpr_CreateThreadpoolWork
        - winpr_SubmitThreadpoolWork
        - winpr_WaitForThreadpoolWorkCallbacks
        - winpr_aligned_calloc
        - winpr_aligned_free
        - winpr_aligned_malloc
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1676,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1677,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1678,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1679,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1680,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1681,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1683,32'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/rfx.c:1686,2'
          Dst:             region16_init
        - Src:             'libfreerdp/codec/rfx.c:1687,2'
          Dst:             region16_init
        - Src:             'libfreerdp/codec/rfx.c:1690,3'
          Dst:             rfx_update_context_properties
        - Src:             'libfreerdp/codec/rfx.c:1696,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1699,22'
          Dst:             winpr_aligned_malloc
        - Src:             'libfreerdp/codec/rfx.c:1715,8'
          Dst:             computeRegion
        - Src:             'libfreerdp/codec/rfx.c:1719,34'
          Dst:             region16_extents
        - Src:             'libfreerdp/codec/rfx.c:1720,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1721,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1726,9'
          Dst:             rfx_ensure_tiles
        - Src:             'libfreerdp/codec/rfx.c:1729,9'
          Dst:             setupWorkers
        - Src:             'libfreerdp/codec/rfx.c:1741,17'
          Dst:             region16_rects
        - Src:             'libfreerdp/codec/rfx.c:1743,27'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/rfx.c:1746,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1746,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1768,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1768,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1770,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1770,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1787,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1787,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1789,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1789,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1792,11'
          Dst:             region16_intersects_rect
        - Src:             'libfreerdp/codec/rfx.c:1795,35'
          Dst:             ObjectPool_Take
        - Src:             'libfreerdp/codec/rfx.c:1799,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1799,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1800,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1800,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1801,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1801,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1802,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1802,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1812,8'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/rfx.c:1825,24'
          Dst:             BufferPool_Take
        - Src:             'libfreerdp/codec/rfx.c:1832,12'
          Dst:             rfx_ensure_tiles
        - Src:             'libfreerdp/codec/rfx.c:1842,18'
          Dst:             winpr_CreateThreadpoolWork
        - Src:             'libfreerdp/codec/rfx.c:1842,18'
          Dst:             rfx_compose_message_tile_work_callback
        - Src:             'libfreerdp/codec/rfx.c:1848,8'
          Dst:             winpr_SubmitThreadpoolWork
        - Src:             'libfreerdp/codec/rfx.c:1854,13'
          Dst:             rfx_encode_rgb
        - Src:             'libfreerdp/codec/rfx.c:1858,12'
          Dst:             region16_union_rect
        - Src:             'libfreerdp/codec/rfx.c:1881,6'
          Dst:             winpr_WaitForThreadpoolWorkCallbacks
        - Src:             'libfreerdp/codec/rfx.c:1882,6'
          Dst:             winpr_CloseThreadpoolWork
        - Src:             'libfreerdp/codec/rfx.c:1889,24'
          Dst:             rfx_tile_length
        - Src:             'libfreerdp/codec/rfx.c:1890,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1890,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1893,3'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/rfx.c:1894,3'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/rfx.c:1899,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1899,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:1901,2'
          Dst:             rfx_message_free
        - Src:             'libfreerdp/codec/rfx.c:1902,2'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/rfx.c:1903,2'
          Dst:             region16_uninit
    - functionName:    rfx_write_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2197
      functionLinenumberEnd: 2218
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          122
      EdgeCount:       36
      CyclomaticComplexity: 8
      functionsReached:
        - rfx_compose_message_header
        - rfx_write_message_frame_begin
        - rfx_write_message_frame_end
        - rfx_write_message_region
        - rfx_write_message_tileset
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:2198,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2199,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2203,8'
          Dst:             rfx_compose_message_header
        - Src:             'libfreerdp/codec/rfx.c:2209,7'
          Dst:             rfx_write_message_frame_begin
        - Src:             'libfreerdp/codec/rfx.c:2210,7'
          Dst:             rfx_write_message_region
        - Src:             'libfreerdp/codec/rfx.c:2211,7'
          Dst:             rfx_write_message_tileset
        - Src:             'libfreerdp/codec/rfx.c:2212,7'
          Dst:             rfx_write_message_frame_end
    - functionName:    rfx_message_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1427
      functionLinenumberEnd: 1459
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          127
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - BufferPool_Return
        - ObjectPool_Return
        - rfx_allocate_tiles
        - winpr_aligned_free
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1431,2'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/rfx.c:1443,5'
          Dst:             BufferPool_Return
        - Src:             'libfreerdp/codec/rfx.c:1447,4'
          Dst:             ObjectPool_Return
        - Src:             'libfreerdp/codec/rfx.c:1450,3'
          Dst:             rfx_allocate_tiles
        - Src:             'libfreerdp/codec/rfx.c:1458,3'
          Dst:             winpr_aligned_free
    - functionName:    rfx_allocate_tiles
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 791
      functionLinenumberEnd: 809
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          174
      EdgeCount:       51
      CyclomaticComplexity: 8
      functionsReached:
        - winpr_aligned_recalloc
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:792,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:795,18'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/codec/rfx.c:801,23'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:801,23'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:804,3'
          Dst:             winpr_int_assert
    - functionName:    rfx_compose_message_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1538
      functionLinenumberEnd: 1548
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - rfx_write_message_channels
        - rfx_write_message_codec_versions
        - rfx_write_message_context
        - rfx_write_message_sync
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1539,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1540,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/codec/rfx.c:1543,2'
          Dst:             rfx_write_message_sync
        - Src:             'libfreerdp/codec/rfx.c:1544,2'
          Dst:             rfx_write_message_context
        - Src:             'libfreerdp/codec/rfx.c:1545,2'
          Dst:             rfx_write_message_codec_versions
        - Src:             'libfreerdp/codec/rfx.c:1546,2'
          Dst:             rfx_write_message_channels
    - functionName:    rfx_write_message_frame_begin
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2123
      functionLinenumberEnd: 2137
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         82
      ICount:          155
      EdgeCount:       83
      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:             'libfreerdp/codec/rfx.c:2124,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2125,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2127,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/codec/rfx.c:2130,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2131,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2132,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2133,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2134,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2134,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2134,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2135,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    rfx_write_message_region
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2142
      functionLinenumberEnd: 2175
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         174
      ICount:          416
      EdgeCount:       177
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - rfx_message_get_rect_const
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:2143,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2144,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2150,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/codec/rfx.c:2153,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2154,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2154,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2154,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2155,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2156,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2157,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2158,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2158,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2158,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2162,26'
          Dst:             rfx_message_get_rect_const
        - Src:             'libfreerdp/codec/rfx.c:2163,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2166,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2166,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2166,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2167,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2167,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2167,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2168,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2168,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2168,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2169,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2169,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2169,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2172,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2173,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    rfx_write_message_tileset
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2071
      functionLinenumberEnd: 2118
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         306
      ICount:          919
      EdgeCount:       329
      CyclomaticComplexity: 25
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - rfx_write_tile
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:2072,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2073,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2077,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/codec/rfx.c:2080,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2081,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2081,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2081,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2082,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2083,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2084,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2085,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2086,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2086,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2086,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2087,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2087,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2087,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2087,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2087,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2087,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2087,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2087,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2087,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2089,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2090,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2090,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2090,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2091,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2091,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2091,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2096,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2097,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2097,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2097,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2097,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2097,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2097,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2097,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2097,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2097,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2108,8'
          Dst:             rfx_write_tile
    - functionName:    rfx_write_message_frame_end
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2181
      functionLinenumberEnd: 2193
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          106
      EdgeCount:       59
      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:             'libfreerdp/codec/rfx.c:2182,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2183,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2185,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/codec/rfx.c:2188,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2189,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2190,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/rfx.c:2191,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    computeRegion
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1601
      functionLinenumberEnd: 1620
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          268
      EdgeCount:       66
      CyclomaticComplexity: 10
      functionsReached:
        - region16_intersect_rect
        - region16_union_rect
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1602,40'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1602,40'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1603,31'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1603,31'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1605,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1615,8'
          Dst:             region16_union_rect
        - Src:             'libfreerdp/codec/rfx.c:1619,9'
          Dst:             region16_intersect_rect
    - functionName:    rfx_ensure_tiles
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1650
      functionLinenumberEnd: 1658
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          85
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - rfx_allocate_tiles
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1651,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1657,9'
          Dst:             rfx_allocate_tiles
    - functionName:    setupWorkers
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1625
      functionLinenumberEnd: 1647
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          100
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_aligned_recalloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1626,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1629,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1636,15'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/codec/rfx.c:1641,15'
          Dst:             winpr_aligned_recalloc
    - functionName:    rfx_compose_message_tile_work_callback
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1589
      functionLinenumberEnd: 1597
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          111
      EdgeCount:       33
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rfx_encode_rgb
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1591,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1592,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1593,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1595,7'
          Dst:             rfx_encode_rgb
        - Src:             'libfreerdp/codec/rfx.c:1596,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1596,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    rfx_message_list_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2035
      functionLinenumberEnd: 2043
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:2036,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2037,26'
          Dst:             calloc
        - Src:             'libfreerdp/codec/rfx.c:2038,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_split_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1952
      functionLinenumberEnd: 2012
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         86
      ICount:          409
      EdgeCount:       98
      CyclomaticComplexity: 14
      functionsReached:
        - rfx_allocate_tiles
        - rfx_clone_quants
        - rfx_clone_rects
        - rfx_tile_length
        - winpr_aligned_calloc
        - winpr_aligned_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1953,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1954,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1955,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1964,20'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/rfx.c:1974,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1975,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1977,31'
          Dst:             rfx_tile_length
        - Src:             'libfreerdp/codec/rfx.c:1985,9'
          Dst:             rfx_clone_quants
        - Src:             'libfreerdp/codec/rfx.c:1987,9'
          Dst:             rfx_clone_rects
        - Src:             'libfreerdp/codec/rfx.c:1990,9'
          Dst:             rfx_allocate_tiles
        - Src:             'libfreerdp/codec/rfx.c:1994,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1994,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1996,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2008,3'
          Dst:             rfx_allocate_tiles
        - Src:             'libfreerdp/codec/rfx.c:2010,2'
          Dst:             winpr_aligned_free
    - functionName:    rfx_encode_messages
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2051
      functionLinenumberEnd: 2066
      functionDepth:   0
      returnType:      'N/A'
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          102
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - rfx_encode_message
        - rfx_message_free
        - rfx_message_list_new
        - rfx_split_message
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:2052,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2053,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2056,6'
          Dst:             rfx_encode_message
        - Src:             'libfreerdp/codec/rfx.c:2060,22'
          Dst:             rfx_split_message
        - Src:             'libfreerdp/codec/rfx.c:2061,2'
          Dst:             rfx_message_free
        - Src:             'libfreerdp/codec/rfx.c:2065,9'
          Dst:             rfx_message_list_new
    - functionName:    rfx_message_list_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2024
      functionLinenumberEnd: 2030
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - rfx_message_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:2028,3'
          Dst:             rfx_message_free
    - functionName:    rfx_message_list_get
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2015
      functionLinenumberEnd: 2021
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          65
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:2016,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:2019,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_message_get_rect_count
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1421
      functionLinenumberEnd: 1423
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1422,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_message_get_rects
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1413
      functionLinenumberEnd: 1417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          46
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1414,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_message_get_tile_count
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1406
      functionLinenumberEnd: 1408
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1407,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_message_get_tiles
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1391
      functionLinenumberEnd: 1402
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1392,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_message_get_quants
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1382
      functionLinenumberEnd: 1386
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          46
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1383,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_message_get_tile
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:366,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:367,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:368,2'
          Dst:             winpr_int_assert
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rfx_process_message_frame_end
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 651
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          155
      EdgeCount:       53
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:652,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:653,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:654,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:655,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:656,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:660,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:660,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:665,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:665,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rfx_process_message_tileset
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 815
      functionLinenumberEnd: 1111
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         236
      ICount:          1380
      EdgeCount:       283
      CyclomaticComplexity: 49
      functionsReached:
        - ObjectPool_Return
        - ObjectPool_Take
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetRemainingLength
        - Stream_Pointer
        - Stream_SafeSeekEx
        - Stream_Seek_UINT16
        - Stream_Seek_UINT8
        - Stream_StaticInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rfx_allocate_tiles
        - rfx_decode_rgb
        - rfx_process_message_tile_work_callback
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - winpr_CloseThreadpoolWork
        - winpr_CreateThreadpoolWork
        - winpr_SubmitThreadpoolWork
        - winpr_WaitForThreadpoolWorkCallbacks
        - winpr_aligned_calloc
        - winpr_aligned_free
        - winpr_aligned_recalloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:830,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:831,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:832,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:833,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:837,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:837,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:843,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/rfx.c:846,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:849,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:849,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:853,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/codec/rfx.c:854,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/codec/rfx.c:855,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:856,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/codec/rfx.c:860,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:860,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:864,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:871,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/rfx.c:873,15'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/codec/rfx.c:880,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/rfx.c:886,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:889,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:892,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:895,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:898,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:901,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:901,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:914,3'
          Dst:             ObjectPool_Return
        - Src:             'libfreerdp/codec/rfx.c:918,7'
          Dst:             rfx_allocate_tiles
        - Src:             'libfreerdp/codec/rfx.c:923,29'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/rfx.c:924,42'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/codec/rfx.c:929,4'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/rfx.c:935,4'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/rfx.c:944,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx.c:952,28'
          Dst:             ObjectPool_Take
        - Src:             'libfreerdp/codec/rfx.c:954,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:954,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:963,9'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/rfx.c:965,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:965,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:972,40'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/rfx.c:972,59'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx.c:972,10'
          Dst:             Stream_StaticInit
        - Src:             'libfreerdp/codec/rfx.c:973,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:975,4'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/rfx.c:977,9'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/codec/rfx.c:983,10'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/rfx.c:985,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:985,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:995,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:995,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:1002,4'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:1003,4'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:1004,4'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:1007,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1007,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:1015,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1015,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:1023,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1023,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:1030,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:1031,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:1032,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:1033,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:1034,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:1035,18'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/rfx.c:1036,9'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/codec/rfx.c:1041,19'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/rfx.c:1042,9'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/codec/rfx.c:1047,19'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/rfx.c:1048,9'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/codec/rfx.c:1067,29'
          Dst:             winpr_CreateThreadpoolWork
        - Src:             'libfreerdp/codec/rfx.c:1067,29'
          Dst:             rfx_process_message_tile_work_callback
        - Src:             'libfreerdp/codec/rfx.c:1070,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1070,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:1075,5'
          Dst:             winpr_SubmitThreadpoolWork
        - Src:             'libfreerdp/codec/rfx.c:1080,10'
          Dst:             rfx_decode_rgb
        - Src:             'libfreerdp/codec/rfx.c:1093,4'
          Dst:             winpr_WaitForThreadpoolWorkCallbacks
        - Src:             'libfreerdp/codec/rfx.c:1094,4'
          Dst:             winpr_CloseThreadpoolWork
        - Src:             'libfreerdp/codec/rfx.c:1098,2'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/rfx.c:1099,2'
          Dst:             winpr_aligned_free
    - 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:    23
      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:    16
      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_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:    5
      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_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    rfx_process_message_region
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 685
      functionLinenumberEnd: 768
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         92
      ICount:          426
      EdgeCount:       106
      CyclomaticComplexity: 16
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek_UINT8
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rfx_message_get_rect
        - rfx_resize_rects
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:689,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:690,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:691,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:692,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:696,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:696,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:702,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/rfx.c:705,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/codec/rfx.c:706,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:717,8'
          Dst:             rfx_resize_rects
        - Src:             'libfreerdp/codec/rfx.c:727,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/rfx.c:730,7'
          Dst:             rfx_resize_rects
        - Src:             'libfreerdp/codec/rfx.c:736,20'
          Dst:             rfx_message_get_rect
        - Src:             'libfreerdp/codec/rfx.c:738,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:739,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:740,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:741,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:742,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:742,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:747,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/rfx.c:750,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:751,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:755,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:755,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:762,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:762,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    rfx_process_message_frame_begin
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 619
      functionLinenumberEnd: 646
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          175
      EdgeCount:       54
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:623,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:624,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:625,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:626,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:630,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:630,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:636,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/rfx.c:639,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/rfx.c:641,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:642,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:642,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rfx_process_message_channels
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 561
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         65
      ICount:          300
      EdgeCount:       75
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:512,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:513,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:516,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/rfx.c:519,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:526,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:526,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:530,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/rfx.c:534,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:538,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:538,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:543,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:544,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:548,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:548,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:555,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/codec/rfx.c:556,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:556,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rfx_process_message_codec_versions
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          250
      EdgeCount:       66
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:467,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:468,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:471,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/rfx.c:474,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:475,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:476,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:481,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:481,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:488,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:488,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:495,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:495,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:500,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:500,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rfx_process_message_context
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 565
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         73
      ICount:          311
      EdgeCount:       80
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/rfx.c:595,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:570,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:571,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:574,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/rfx.c:577,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:578,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:579,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:580,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:580,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:588,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:588,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:592,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:592,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:599,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:599,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:604,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:604,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:608,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:608,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    rfx_process_message_sync
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          196
      EdgeCount:       53
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:439,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/rfx.c:442,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/rfx.c:445,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:445,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:449,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:452,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:452,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:457,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:457,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rfx_process_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1117
      functionLinenumberEnd: 1378
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         308
      ICount:          1501
      EdgeCount:       359
      CyclomaticComplexity: 53
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetRemainingLength
        - Stream_Pointer
        - Stream_Seek
        - Stream_StaticConstInit
        - Stream_StaticInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_image_copy_no_overlap
        - region16_init
        - region16_intersect_rect
        - region16_rects
        - region16_uninit
        - region16_union_rect
        - rfx_message_free
        - rfx_message_get_tile
        - rfx_process_message_channels
        - rfx_process_message_codec_versions
        - rfx_process_message_context
        - rfx_process_message_frame_begin
        - rfx_process_message_frame_end
        - rfx_process_message_region
        - rfx_process_message_sync
        - rfx_process_message_tileset
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/rfx.c:1215,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:1125,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1128,15'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/codec/rfx.c:1130,15'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx.c:1138,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/rfx.c:1139,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/rfx.c:1140,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1140,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:1145,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1145,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:1149,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/rfx.c:1154,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1154,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:1164,9'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/rfx.c:1168,4'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:1169,4'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/rfx.c:1173,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1173,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:1183,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1183,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:1194,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1194,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:1205,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1205,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:1212,60'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/rfx.c:1212,24'
          Dst:             Stream_StaticInit
        - Src:             'libfreerdp/codec/rfx.c:1213,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/codec/rfx.c:1222,10'
          Dst:             rfx_process_message_sync
        - Src:             'libfreerdp/codec/rfx.c:1226,10'
          Dst:             rfx_process_message_context
        - Src:             'libfreerdp/codec/rfx.c:1230,10'
          Dst:             rfx_process_message_codec_versions
        - Src:             'libfreerdp/codec/rfx.c:1234,10'
          Dst:             rfx_process_message_channels
        - Src:             'libfreerdp/codec/rfx.c:1245,10'
          Dst:             rfx_process_message_frame_begin
        - Src:             'libfreerdp/codec/rfx.c:1250,10'
          Dst:             rfx_process_message_region
        - Src:             'libfreerdp/codec/rfx.c:1255,10'
          Dst:             rfx_process_message_tileset
        - Src:             'libfreerdp/codec/rfx.c:1260,10'
          Dst:             rfx_process_message_frame_end
        - Src:             'libfreerdp/codec/rfx.c:1265,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1265,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:1276,28'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/rfx.c:1277,39'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/rfx.c:1278,3'
          Dst:             region16_init
        - Src:             'libfreerdp/codec/rfx.c:1280,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1281,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1287,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1288,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1289,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1290,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1292,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1292,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1293,23'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1293,23'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1297,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1297,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1298,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1298,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1301,9'
          Dst:             region16_union_rect
        - Src:             'libfreerdp/codec/rfx.c:1303,5'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/rfx.c:1304,5'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/rfx.c:1312,27'
          Dst:             rfx_message_get_tile
        - Src:             'libfreerdp/codec/rfx.c:1314,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1315,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:1321,4'
          Dst:             region16_init
        - Src:             'libfreerdp/codec/rfx.c:1322,9'
          Dst:             region16_intersect_rect
        - Src:             'libfreerdp/codec/rfx.c:1324,5'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/rfx.c:1325,5'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/rfx.c:1328,18'
          Dst:             region16_rects
        - Src:             'libfreerdp/codec/rfx.c:1341,10'
          Dst:             freerdp_image_copy_no_overlap
        - Src:             'libfreerdp/codec/rfx.c:1345,6'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/rfx.c:1346,6'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/rfx.c:1347,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1347,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx.c:1355,11'
          Dst:             region16_union_rect
        - Src:             'libfreerdp/codec/rfx.c:1357,7'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/rfx.c:1358,7'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/rfx.c:1364,4'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/rfx.c:1367,3'
          Dst:             region16_uninit
        - Src:             'libfreerdp/codec/rfx.c:1372,3'
          Dst:             rfx_message_free
        - Src:             'libfreerdp/codec/rfx.c:1376,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx.c:1376,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    rfx_context_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          195
      EdgeCount:       55
      CyclomaticComplexity: 9
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:421,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:421,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:422,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:422,20'
          Dst:             winpr_int_assert
    - functionName:    rfx_context_get_palette
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 411
      functionLinenumberEnd: 413
      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:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:412,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_context_set_palette
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:406,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_context_get_pixel_format
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 400
      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:             'libfreerdp/codec/rfx.c:399,2'
          Dst:             winpr_int_assert
    - functionName:    rfx_profiler_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          56
      EdgeCount:       37
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rfx_profiler_print
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         40
      ICount:          60
      EdgeCount:       41
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rfx_context_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          133
      EdgeCount:       39
      CyclomaticComplexity: 5
      functionsReached:
        - BufferPool_Free
        - ObjectPool_Free
        - rfx_message_free
        - rfx_profiler_free
        - rfx_profiler_print
        - winpr_aligned_free
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:331,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:334,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:335,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:336,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:339,2'
          Dst:             rfx_message_free
        - Src:             'libfreerdp/codec/rfx.c:340,2'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/rfx.c:341,2'
          Dst:             rfx_profiler_print
        - Src:             'libfreerdp/codec/rfx.c:342,2'
          Dst:             rfx_profiler_free
        - Src:             'libfreerdp/codec/rfx.c:346,3'
          Dst:             ObjectPool_Free
        - Src:             'libfreerdp/codec/rfx.c:349,4'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/rfx.c:350,4'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/rfx.c:358,3'
          Dst:             BufferPool_Free
        - Src:             'libfreerdp/codec/rfx.c:359,3'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/rfx.c:361,2'
          Dst:             winpr_aligned_free
    - functionName:    rfx_init_neon
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/neon/rfx_neon.h'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - IsProcessorFeaturePresent
        - rfx_init_neon_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/neon/rfx_neon.h:31,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/codec/neon/rfx_neon.h:34,2'
          Dst:             rfx_init_neon_int
    - functionName:    rfx_init_sse2
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/rfx_sse2.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - IsProcessorFeaturePresent
        - rfx_init_sse2_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/sse/rfx_sse2.h:32,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/codec/sse/rfx_sse2.h:33,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/codec/sse/rfx_sse2.h:36,2'
          Dst:             rfx_init_sse2_int
    - functionName:    rfx_profiler_create
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          56
      EdgeCount:       37
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rfx_context_set_pixel_format
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          115
      EdgeCount:       33
      CyclomaticComplexity: 5
      functionsReached:
        - FreeRDPGetBitsPerPixel
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:391,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:393,21'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/rfx.c:394,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx.c:394,28'
          Dst:             winpr_int_assert
    - functionName:    rfx_decoder_tile_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_aligned_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:185,4'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/rfx.c:187,3'
          Dst:             winpr_aligned_free
    - functionName:    rfx_decoder_tile_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_aligned_calloc
        - winpr_aligned_free
        - winpr_aligned_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:165,26'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/rfx.c:168,28'
          Dst:             winpr_aligned_malloc
        - Src:             'libfreerdp/codec/rfx.c:170,3'
          Dst:             winpr_aligned_free
    - functionName:    rfx_encoder_tile_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_aligned_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:199,2'
          Dst:             winpr_aligned_free
    - functionName:    rfx_encoder_tile_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_aligned_calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:194,9'
          Dst:             winpr_aligned_calloc
    - functionName:    rfx_tile_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          44
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rfx_context_new_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          253
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - BufferPool_New
        - ObjectPool_New
        - ObjectPool_Object
        - RegCloseKey
        - RegOpenKeyExA
        - RegQueryValueExA
        - WLog_Get
        - freerdp_getApplicatonDetailsRegKey
        - primitives_get
        - rfx_context_free
        - rfx_context_set_pixel_format
        - rfx_init_neon
        - rfx_init_sse2
        - rfx_profiler_create
        - winpr_aligned_calloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:210,39'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/rfx.c:217,44'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/rfx.c:222,14'
          Dst:             WLog_Get
        - Src:             'libfreerdp/codec/rfx.c:223,19'
          Dst:             ObjectPool_New
        - Src:             'libfreerdp/codec/rfx.c:229,19'
          Dst:             ObjectPool_Object
        - Src:             'libfreerdp/codec/rfx.c:257,21'
          Dst:             BufferPool_New
        - Src:             'libfreerdp/codec/rfx.c:267,15'
          Dst:             freerdp_getApplicatonDetailsRegKey
        - Src:             'libfreerdp/codec/rfx.c:272,8'
          Dst:             RegOpenKeyExA
        - Src:             'libfreerdp/codec/rfx.c:281,9'
          Dst:             RegQueryValueExA
        - Src:             'libfreerdp/codec/rfx.c:285,5'
          Dst:             RegCloseKey
        - Src:             'libfreerdp/codec/rfx.c:295,8'
          Dst:             primitives_get
        - Src:             'libfreerdp/codec/rfx.c:300,2'
          Dst:             rfx_context_set_pixel_format
        - Src:             'libfreerdp/codec/rfx.c:302,2'
          Dst:             rfx_profiler_create
        - Src:             'libfreerdp/codec/rfx.c:311,2'
          Dst:             rfx_init_sse2
        - Src:             'libfreerdp/codec/rfx.c:312,2'
          Dst:             rfx_init_neon
        - Src:             'libfreerdp/codec/rfx.c:319,2'
          Dst:             rfx_context_free
    - functionName:    rfx_context_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rfx_context_new_ex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx.c:204,9'
          Dst:             rfx_context_new_ex
    - functionName:    band_match
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          124
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    next_band
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          98
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:506,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:507,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:508,2'
          Dst:             winpr_int_assert
    - functionName:    region16_uninit
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 949
      functionLinenumberEnd: 954
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - freeRegion
        - winpr_int_assert
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:950,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:952,2'
          Dst:             freeRegion
    - functionName:    freeRegion
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    region16_intersect_rect
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 867
      functionLinenumberEnd: 946
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          328
      EdgeCount:       64
      CyclomaticComplexity: 15
      functionsReached:
        - allocateRegion
        - freeRegion
        - rectangle_is_empty
        - rectangles_intersection
        - region16_clear
        - region16_extents
        - region16_rects
        - region16_simplify_bands
        - region16_union_rect
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:872,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:873,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:875,31'
          Dst:             region16_rects
        - Src:             'libfreerdp/codec/region.c:879,3'
          Dst:             region16_clear
        - Src:             'libfreerdp/codec/region.c:883,35'
          Dst:             region16_extents
        - Src:             'libfreerdp/codec/region.c:887,21'
          Dst:             rectangles_intersection
        - Src:             'libfreerdp/codec/region.c:888,3'
          Dst:             region16_clear
        - Src:             'libfreerdp/codec/region.c:891,11'
          Dst:             region16_union_rect
        - Src:             'libfreerdp/codec/region.c:896,28'
          Dst:             allocateRegion
        - Src:             'libfreerdp/codec/region.c:912,4'
          Dst:             freeRegion
        - Src:             'libfreerdp/codec/region.c:916,7'
          Dst:             rectangles_intersection
        - Src:             'libfreerdp/codec/region.c:922,8'
          Dst:             rectangle_is_empty
        - Src:             'libfreerdp/codec/region.c:942,2'
          Dst:             freeRegion
        - Src:             'libfreerdp/codec/region.c:945,9'
          Dst:             region16_simplify_bands
    - functionName:    region16_rects
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          143
      EdgeCount:       42
      CyclomaticComplexity: 9
      functionsReached:
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:107,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:107,14'
          Dst:             winpr_int_assert
    - functionName:    region16_clear
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - freeRegion
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:224,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:226,2'
          Dst:             freeRegion
    - functionName:    region16_extents
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          23
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rectangles_intersection
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          212
      EdgeCount:       41
      CyclomaticComplexity: 7
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:175,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:176,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:177,2'
          Dst:             winpr_int_assert
    - functionName:    region16_union_rect
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 834
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         119
      ICount:          856
      EdgeCount:       152
      CyclomaticComplexity: 35
      functionsReached:
        - allocateRegion
        - freeRegion
        - nextRect
        - rectangle_contained_in_band
        - region16_copy_band_with_union
        - region16_extents
        - region16_extents_noconst
        - region16_n_rects
        - region16_rects
        - region16_rects_noconst
        - region16_simplify_bands
        - resizeRegion
        - winpr_int_assert
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:649,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:650,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:652,35'
          Dst:             region16_extents
        - Src:             'libfreerdp/codec/region.c:653,29'
          Dst:             region16_extents_noconst
        - Src:             'libfreerdp/codec/region.c:655,25'
          Dst:             region16_n_rects
        - Src:             'libfreerdp/codec/region.c:661,8'
          Dst:             resizeRegion
        - Src:             'libfreerdp/codec/region.c:664,27'
          Dst:             region16_rects_noconst
        - Src:             'libfreerdp/codec/region.c:665,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:675,43'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:675,43'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:675,28'
          Dst:             allocateRegion
        - Src:             'libfreerdp/codec/region.c:685,27'
          Dst:             nextRect
        - Src:             'libfreerdp/codec/region.c:696,36'
          Dst:             region16_rects
        - Src:             'libfreerdp/codec/region.c:702,7'
          Dst:             rectangle_contained_in_band
        - Src:             'libfreerdp/codec/region.c:718,9'
          Dst:             region16_copy_band_with_union
        - Src:             'libfreerdp/codec/region.c:753,10'
          Dst:             region16_copy_band_with_union
        - Src:             'libfreerdp/codec/region.c:764,9'
          Dst:             region16_copy_band_with_union
        - Src:             'libfreerdp/codec/region.c:771,10'
          Dst:             region16_copy_band_with_union
        - Src:             'libfreerdp/codec/region.c:798,28'
          Dst:             nextRect
        - Src:             'libfreerdp/codec/region.c:814,27'
          Dst:             nextRect
        - Src:             'libfreerdp/codec/region.c:830,2'
          Dst:             freeRegion
        - Src:             'libfreerdp/codec/region.c:833,9'
          Dst:             region16_simplify_bands
    - functionName:    allocateRegion
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:237,24'
          Dst:             calloc
        - Src:             'libfreerdp/codec/region.c:243,17'
          Dst:             calloc
    - functionName:    rectangle_is_empty
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:142,2'
          Dst:             winpr_int_assert
    - functionName:    region16_simplify_bands
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 642
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         72
      ICount:          322
      EdgeCount:       87
      CyclomaticComplexity: 17
      functionsReached:
        - band_match
        - next_band
        - region16_n_rects
        - region16_rects_noconst
        - resizeRegion
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:589,22'
          Dst:             region16_n_rects
        - Src:             'libfreerdp/codec/region.c:595,24'
          Dst:             region16_rects_noconst
        - Src:             'libfreerdp/codec/region.c:601,25'
          Dst:             next_band
        - Src:             'libfreerdp/codec/region.c:606,40'
          Dst:             band_match
        - Src:             'libfreerdp/codec/region.c:621,8'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:621,8'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:637,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:637,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:637,8'
          Dst:             resizeRegion
    - functionName:    region16_n_rects
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          118
      EdgeCount:       37
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:87,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:91,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:91,9'
          Dst:             winpr_int_assert
    - functionName:    region16_rects_noconst
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 122
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:114,2'
          Dst:             winpr_int_assert
    - functionName:    resizeRegion
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          143
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - allocateRegion
        - freeRegion
        - realloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:277,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:280,3'
          Dst:             freeRegion
        - Src:             'libfreerdp/codec/region.c:287,18'
          Dst:             allocateRegion
        - Src:             'libfreerdp/codec/region.c:291,24'
          Dst:             realloc
    - functionName:    region16_extents_noconst
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          23
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nextRect
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - freeRegion
        - realloc
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:257,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:260,25'
          Dst:             realloc
        - Src:             'libfreerdp/codec/region.c:263,4'
          Dst:             freeRegion
    - functionName:    rectangle_contained_in_band
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 551
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          157
      EdgeCount:       43
      CyclomaticComplexity: 8
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:552,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:553,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:554,2'
          Dst:             winpr_int_assert
    - functionName:    region16_copy_band_with_union
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 502
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
        - short
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         76
      ICount:          433
      EdgeCount:       95
      CyclomaticComplexity: 21
      functionsReached:
        - nextRect
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:409,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:410,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:411,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:412,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:445,24'
          Dst:             nextRect
        - Src:             'libfreerdp/codec/region.c:474,24'
          Dst:             nextRect
        - Src:             'libfreerdp/codec/region.c:487,23'
          Dst:             nextRect
    - functionName:    region16_intersects_rect
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 837
      functionLinenumberEnd: 864
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          140
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - rectangles_intersects
        - region16_extents
        - region16_rects
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:844,29'
          Dst:             region16_rects
        - Src:             'libfreerdp/codec/region.c:849,35'
          Dst:             region16_extents
        - Src:             'libfreerdp/codec/region.c:852,10'
          Dst:             rectangles_intersects
        - Src:             'libfreerdp/codec/region.c:854,7'
          Dst:             rectangles_intersects
        - Src:             'libfreerdp/codec/region.c:859,7'
          Dst:             rectangles_intersects
    - functionName:    rectangles_intersects
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rectangles_intersection
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:170,9'
          Dst:             rectangles_intersection
    - functionName:    region16_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          116
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - _strdup
        - rectangle_to_string
        - region16_rects
        - winpr_asprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:367,10'
          Dst:             _strdup
        - Src:             'libfreerdp/codec/region.c:370,30'
          Dst:             region16_rects
        - Src:             'libfreerdp/codec/region.c:374,2'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/codec/region.c:385,4'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/codec/region.c:393,18'
          Dst:             rectangle_to_string
        - Src:             'libfreerdp/codec/region.c:392,3'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/codec/region.c:399,2'
          Dst:             winpr_asprintf
    - functionName:    rectangle_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:191,9'
          Dst:             snprintf
        - Src:             'libfreerdp/codec/region.c:193,9'
          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:    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:    region16_print
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          88
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - region16_rects
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:345,30'
          Dst:             region16_rects
        - Src:             'libfreerdp/codec/region.c:347,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/region.c:356,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/region.c:359,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    region16_copy_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          123
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - allocateRegion
        - freeRegion
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:312,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:313,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:315,2'
          Dst:             freeRegion
        - Src:             'libfreerdp/codec/region.c:320,15'
          Dst:             allocateRegion
    - functionName:    region16_copy
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          63
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - region16_copy_data
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:333,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:334,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:338,9'
          Dst:             region16_copy_data
    - functionName:    rectangles_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          70
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:205,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:207,24'
          Dst:             calloc
    - functionName:    rectangles_equal
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          100
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:160,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/region.c:161,2'
          Dst:             winpr_int_assert
    - functionName:    region16_is_empty
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          50
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:152,2'
          Dst:             winpr_int_assert
    - functionName:    region16_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/region.c:79,2'
          Dst:             winpr_int_assert
    - functionName:    nsc_rle_decode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          288
      EdgeCount:       54
      CyclomaticComplexity: 16
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - 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_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_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - 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:    3
      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_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:    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:    1
      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:    nsc_stream_initialize
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          188
      EdgeCount:       45
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Pointer
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u32_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/nsc.c:235,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:236,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:237,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/nsc.c:243,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/nsc.c:247,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/nsc.c:250,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/nsc.c:250,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/nsc.c:255,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/nsc.c:256,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/codec/nsc.c:257,20'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/nsc.c:259,9'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nsc_rle_decompress_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          206
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - nsc_rle_decode
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/nsc.c:192,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:211,9'
          Dst:             nsc_rle_decode
    - functionName:    nsc_context_initialize
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          278
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - nsc_stream_initialize
        - winpr_aligned_recalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/nsc.c:264,7'
          Dst:             nsc_stream_initialize
        - Src:             'libfreerdp/codec/nsc.c:271,15'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/codec/nsc.c:291,23'
          Dst:             winpr_aligned_recalloc
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - functionName:    nsc_process_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - short
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         129
      ICount:          589
      EdgeCount:       150
      CyclomaticComplexity: 23
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - Stream_StaticConstInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_image_copy_no_overlap
        - nsc_context_initialize
        - nsc_rle_decompress_data
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/nsc.c:476,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/nsc.c:437,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:438,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:444,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/nsc.c:444,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/nsc.c:451,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/nsc.c:451,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/nsc.c:457,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/nsc.c:457,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/nsc.c:462,15'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/codec/nsc.c:466,36'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/nsc.c:471,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/nsc.c:471,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/nsc.c:502,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:502,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:503,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:503,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:504,8'
          Dst:             nsc_context_initialize
        - Src:             'libfreerdp/codec/nsc.c:513,8'
          Dst:             nsc_rle_decompress_data
        - Src:             'libfreerdp/codec/nsc.c:538,10'
          Dst:             freerdp_image_copy_no_overlap
    - functionName:    nsc_context_set_parameters
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       19
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/nsc.c:412,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    nsc_profiler_print
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          22
      EdgeCount:       25
      CyclomaticComplexity: 14
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nsc_context_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          79
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - nsc_profiler_print
        - winpr_aligned_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/nsc.c:385,4'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/nsc.c:387,3'
          Dst:             nsc_profiler_print
        - Src:             'libfreerdp/codec/nsc.c:392,3'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/nsc.c:395,2'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/nsc.c:396,2'
          Dst:             winpr_aligned_free
    - functionName:    nsc_init_neon
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/neon/nsc_neon.h'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - IsProcessorFeaturePresent
        - nsc_init_neon_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/neon/nsc_neon.h:31,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/codec/neon/nsc_neon.h:34,2'
          Dst:             nsc_init_neon_int
    - functionName:    nsc_init_sse2
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.h'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - IsProcessorFeaturePresent
        - nsc_init_sse2_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/sse/nsc_sse2.h:31,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/codec/sse/nsc_sse2.h:32,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/codec/sse/nsc_sse2.h:35,2'
          Dst:             nsc_init_sse2_int
    - functionName:    nsc_decode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         324
      ICount:          1424
      EdgeCount:       377
      CyclomaticComplexity: 55
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/nsc.c:52,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:53,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:53,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:85,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:85,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:86,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:86,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:87,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:87,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:93,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:93,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:93,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:93,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:93,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:93,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:94,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:94,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:94,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:94,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:94,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:94,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:95,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:95,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:95,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:95,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:95,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc.c:95,17'
          Dst:             winpr_int_assert
    - functionName:    nsc_context_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         17
      ICount:          80
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - nsc_context_free
        - nsc_init_neon
        - nsc_init_sse2
        - winpr_aligned_calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/nsc.c:343,39'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/nsc.c:348,37'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/nsc.c:353,23'
          Dst:             WLog_Get
        - Src:             'libfreerdp/codec/nsc.c:366,2'
          Dst:             nsc_init_sse2
        - Src:             'libfreerdp/codec/nsc.c:367,2'
          Dst:             nsc_init_neon
        - Src:             'libfreerdp/codec/nsc.c:372,2'
          Dst:             nsc_context_free
    - functionName:    nsc_context_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - 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_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
      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:    4
      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_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:    2
      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_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_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:    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:    4
      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:    nsc_rle_encode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc_encode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          292
      EdgeCount:       61
      CyclomaticComplexity: 12
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/nsc_encode.c:361,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:362,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:362,13'
          Dst:             winpr_int_assert
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nsc_decompose_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc_encode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          83
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - FreeRDPGetBitsPerPixel
        - Stream_GetRemainingLength
        - Stream_Pointer
        - Stream_Seek
        - nsc_process_message
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/nsc_encode.c:506,16'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/codec/nsc_encode.c:511,44'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/nsc_encode.c:512,35'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/nsc_encode.c:511,7'
          Dst:             nsc_process_message
        - Src:             'libfreerdp/codec/nsc_encode.c:515,2'
          Dst:             Stream_Seek
    - functionName:    nsc_write_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc_encode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 454
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         112
      ICount:          386
      EdgeCount:       117
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/nsc_encode.c:426,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/codec/nsc_encode.c:429,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:429,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:429,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/nsc_encode.c:430,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:430,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:430,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/nsc_encode.c:432,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:432,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:432,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/nsc_encode.c:434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:434,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/codec/nsc_encode.c:435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:435,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/nsc_encode.c:436,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:436,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:436,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/nsc_encode.c:437,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/nsc_encode.c:440,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/codec/nsc_encode.c:443,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/codec/nsc_encode.c:447,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/codec/nsc_encode.c:451,3'
          Dst:             Stream_Write
    - functionName:    nsc_rle_compress_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc_encode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          109
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - nsc_rle_encode
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/nsc_encode.c:405,16'
          Dst:             nsc_rle_encode
    - functionName:    nsc_context_initialize_encode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc_encode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          268
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - winpr_aligned_free
        - winpr_aligned_recalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/nsc_encode.c:76,23'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/codec/nsc_encode.c:109,4'
          Dst:             winpr_aligned_free
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - functionName:    nsc_compose_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc_encode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         110
      ICount:          488
      EdgeCount:       128
      CyclomaticComplexity: 20
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - nsc_context_initialize_encode
        - nsc_rle_compress_data
        - nsc_write_message
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/nsc_encode.c:467,22'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/nsc_encode.c:469,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:469,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:470,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:470,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:472,7'
          Dst:             nsc_context_initialize_encode
        - Src:             'libfreerdp/codec/nsc_encode.c:484,2'
          Dst:             nsc_rle_compress_data
        - Src:             'libfreerdp/codec/nsc_encode.c:495,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:495,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:497,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:497,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:498,9'
          Dst:             nsc_write_message
    - functionName:    nsc_encode_subsampling
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc_encode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          247
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nsc_encode_argb_to_aycocg
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc_encode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          851
      EdgeCount:       70
      CyclomaticComplexity: 12
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/nsc_encode.c:144,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/nsc_encode.c:131,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/nsc_encode.c:131,19'
          Dst:             winpr_int_assert
    - functionName:    nsc_encode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/nsc_encode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          81
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - nsc_encode_argb_to_aycocg
        - nsc_encode_subsampling
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/nsc_encode.c:322,7'
          Dst:             nsc_encode_argb_to_aycocg
        - Src:             'libfreerdp/codec/nsc_encode.c:327,8'
          Dst:             nsc_encode_subsampling
    - functionName:    ncrush_find_match_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2346
      functionLinenumberEnd: 2364
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          100
      EdgeCount:       30
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/ncrush.c:2351,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2352,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2353,2'
          Dst:             winpr_int_assert
    - functionName:    ncrush_context_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3039
      functionLinenumberEnd: 3041
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ncrush_generate_tables
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2935
      functionLinenumberEnd: 2991
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         59
      ICount:          297
      EdgeCount:       71
      CyclomaticComplexity: 14
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/ncrush.c:2936,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2979,3'
          Dst:             winpr_int_assert
    - functionName:    ncrush_context_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3011
      functionLinenumberEnd: 3036
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - ncrush_context_free
        - ncrush_context_reset
        - ncrush_generate_tables
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/ncrush.c:3012,44'
          Dst:             calloc
        - Src:             'libfreerdp/codec/ncrush.c:3024,6'
          Dst:             ncrush_generate_tables
        - Src:             'libfreerdp/codec/ncrush.c:3026,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/ncrush.c:3030,2'
          Dst:             ncrush_context_reset
        - Src:             'libfreerdp/codec/ncrush.c:3034,2'
          Dst:             ncrush_context_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:    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:    ncrush_context_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2994
      functionLinenumberEnd: 3008
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/ncrush.c:2995,2'
          Dst:             winpr_int_assert
    - functionName:    NCrushWriteFinish
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2010
      functionLinenumberEnd: 2015
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/ncrush.c:2011,2'
          Dst:             winpr_int_assert
    - functionName:    NCrushWriteBits
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1992
      functionLinenumberEnd: 2007
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          110
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/ncrush.c:1993,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:1994,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:1995,2'
          Dst:             winpr_int_assert
    - functionName:    ncrush_find_best_match
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2369
      functionLinenumberEnd: 2482
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         93
      ICount:          549
      EdgeCount:       116
      CyclomaticComplexity: 25
      functionsReached:
        - ncrush_find_match_length
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/ncrush.c:2372,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2373,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2447,9'
          Dst:             ncrush_find_match_length
        - Src:             'libfreerdp/codec/ncrush.c:2449,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2450,5'
          Dst:             winpr_int_assert
    - functionName:    ncrush_hash_table_add
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2324
      functionLinenumberEnd: 2342
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          186
      EdgeCount:       49
      CyclomaticComplexity: 6
      functionsReached:
        - get_word
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/ncrush.c:2329,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2330,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2331,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2335,41'
          Dst:             get_word
        - Src:             'libfreerdp/codec/ncrush.c:2336,41'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2336,41'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2336,21'
          Dst:             get_word
    - functionName:    get_word
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1922
      functionLinenumberEnd: 1928
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/ncrush.c:1925,2'
          Dst:             winpr_int_assert
    - functionName:    NCrushWriteStart
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1980
      functionLinenumberEnd: 1988
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          62
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/ncrush.c:1981,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:1982,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:1983,2'
          Dst:             winpr_int_assert
    - functionName:    ncrush_move_encoder_windows
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2485
      functionLinenumberEnd: 2520
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         90
      ICount:          371
      EdgeCount:       103
      CyclomaticComplexity: 15
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/ncrush.c:2486,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2487,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2498,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2499,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2505,47'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2505,47'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2515,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2515,49'
          Dst:             winpr_int_assert
    - functionName:    ncrush_compress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2524
      functionLinenumberEnd: 2932
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         324
      ICount:          1836
      EdgeCount:       403
      CyclomaticComplexity: 81
      functionsReached:
        - NCrushWriteBits
        - NCrushWriteFinish
        - NCrushWriteStart
        - get_word
        - ncrush_context_reset
        - ncrush_find_best_match
        - ncrush_hash_table_add
        - ncrush_move_encoder_windows
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/ncrush.c:2558,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2560,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2561,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2562,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2563,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2564,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2565,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2580,8'
          Dst:             ncrush_move_encoder_windows
        - Src:             'libfreerdp/codec/ncrush.c:2605,2'
          Dst:             NCrushWriteStart
        - Src:             'libfreerdp/codec/ncrush.c:2618,51'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2618,51'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2618,2'
          Dst:             ncrush_hash_table_add
        - Src:             'libfreerdp/codec/ncrush.c:2626,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2627,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2641,40'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2641,40'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2641,9'
          Dst:             ncrush_find_best_match
        - Src:             'libfreerdp/codec/ncrush.c:2663,5'
          Dst:             ncrush_context_reset
        - Src:             'libfreerdp/codec/ncrush.c:2678,14'
          Dst:             get_word
        - Src:             'libfreerdp/codec/ncrush.c:2683,4'
          Dst:             NCrushWriteBits
        - Src:             'libfreerdp/codec/ncrush.c:2695,5'
          Dst:             ncrush_context_reset
        - Src:             'libfreerdp/codec/ncrush.c:2772,15'
          Dst:             get_word
        - Src:             'libfreerdp/codec/ncrush.c:2780,5'
          Dst:             NCrushWriteBits
        - Src:             'libfreerdp/codec/ncrush.c:2781,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2781,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2783,5'
          Dst:             NCrushWriteBits
        - Src:             'libfreerdp/codec/ncrush.c:2800,5'
          Dst:             NCrushWriteBits
        - Src:             'libfreerdp/codec/ncrush.c:2801,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2801,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2803,5'
          Dst:             NCrushWriteBits
        - Src:             'libfreerdp/codec/ncrush.c:2819,15'
          Dst:             get_word
        - Src:             'libfreerdp/codec/ncrush.c:2824,5'
          Dst:             NCrushWriteBits
        - Src:             'libfreerdp/codec/ncrush.c:2842,5'
          Dst:             NCrushWriteBits
        - Src:             'libfreerdp/codec/ncrush.c:2843,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2843,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2845,5'
          Dst:             NCrushWriteBits
        - Src:             'libfreerdp/codec/ncrush.c:2862,4'
          Dst:             ncrush_context_reset
        - Src:             'libfreerdp/codec/ncrush.c:2878,13'
          Dst:             get_word
        - Src:             'libfreerdp/codec/ncrush.c:2883,3'
          Dst:             NCrushWriteBits
        - Src:             'libfreerdp/codec/ncrush.c:2888,3'
          Dst:             ncrush_context_reset
        - Src:             'libfreerdp/codec/ncrush.c:2902,9'
          Dst:             get_word
        - Src:             'libfreerdp/codec/ncrush.c:2903,2'
          Dst:             NCrushWriteBits
        - Src:             'libfreerdp/codec/ncrush.c:2904,2'
          Dst:             NCrushWriteFinish
        - Src:             'libfreerdp/codec/ncrush.c:2906,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2907,2'
          Dst:             winpr_int_assert
    - functionName:    NCrushFetchBits
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1944
      functionLinenumberEnd: 1977
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          172
      EdgeCount:       43
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/ncrush.c:1945,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:1946,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:1947,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:1948,2'
          Dst:             winpr_int_assert
    - functionName:    get_dword
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1932
      functionLinenumberEnd: 1939
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/ncrush.c:1934,2'
          Dst:             winpr_int_assert
    - functionName:    ncrush_decompress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/ncrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2019
      functionLinenumberEnd: 2320
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         282
      ICount:          1500
      EdgeCount:       348
      CyclomaticComplexity: 68
      functionsReached:
        - NCrushFetchBits
        - WLog_Print_dbg_tag
        - get_dword
        - get_word
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/ncrush.c:2036,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2037,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2038,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2039,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2075,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/ncrush.c:2083,16'
          Dst:             get_dword
        - Src:             'libfreerdp/codec/ncrush.c:2088,24'
          Dst:             get_word
        - Src:             'libfreerdp/codec/ncrush.c:2095,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2095,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2097,9'
          Dst:             NCrushFetchBits
        - Src:             'libfreerdp/codec/ncrush.c:2105,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/ncrush.c:2128,25'
          Dst:             get_word
        - Src:             'libfreerdp/codec/ncrush.c:2135,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2135,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2138,9'
          Dst:             NCrushFetchBits
        - Src:             'libfreerdp/codec/ncrush.c:2156,25'
          Dst:             get_word
        - Src:             'libfreerdp/codec/ncrush.c:2159,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2159,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2162,10'
          Dst:             NCrushFetchBits
        - Src:             'libfreerdp/codec/ncrush.c:2189,26'
          Dst:             get_word
        - Src:             'libfreerdp/codec/ncrush.c:2197,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2197,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2199,10'
          Dst:             NCrushFetchBits
        - Src:             'libfreerdp/codec/ncrush.c:2203,25'
          Dst:             get_word
        - Src:             'libfreerdp/codec/ncrush.c:2211,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2211,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2213,9'
          Dst:             NCrushFetchBits
        - Src:             'libfreerdp/codec/ncrush.c:2231,25'
          Dst:             get_word
        - Src:             'libfreerdp/codec/ncrush.c:2234,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2234,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2237,10'
          Dst:             NCrushFetchBits
        - Src:             'libfreerdp/codec/ncrush.c:2308,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/ncrush.c:2314,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/ncrush.c:2315,2'
          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_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:    xcrush_clear_hash_table_range
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          145
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:308,2'
          Dst:             winpr_int_assert
    - functionName:    xcrush_find_next_matching_chunk
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          156
      EdgeCount:       40
      CyclomaticComplexity: 9
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:339,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:364,2'
          Dst:             winpr_int_assert
    - functionName:    xcrush_find_match_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          392
      EdgeCount:       76
      CyclomaticComplexity: 20
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:430,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:431,2'
          Dst:             winpr_int_assert
    - functionName:    xcrush_insert_chunk
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          271
      EdgeCount:       58
      CyclomaticComplexity: 10
      functionsReached:
        - winpr_int_assert
        - xcrush_clear_hash_table_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:373,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:383,3'
          Dst:             xcrush_clear_hash_table_range
        - Src:             'libfreerdp/codec/xcrush.c:400,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:405,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:405,29'
          Dst:             winpr_int_assert
    - functionName:    xcrush_update_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          100
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:169,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:170,2'
          Dst:             winpr_int_assert
    - functionName:    xcrush_append_chunk
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         71
      ICount:          285
      EdgeCount:       80
      CyclomaticComplexity: 11
      functionsReached:
        - winpr_int_assert
        - xcrush_update_hash
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:195,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:196,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:197,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:209,55'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:209,55'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:209,23'
          Dst:             xcrush_update_hash
        - Src:             'libfreerdp/codec/xcrush.c:210,53'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:210,53'
          Dst:             winpr_int_assert
    - functionName:    _rotl
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/crt.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xcrush_compute_chunks
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          346
      EdgeCount:       70
      CyclomaticComplexity: 15
      functionsReached:
        - _rotl
        - winpr_int_assert
        - xcrush_append_chunk
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:227,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:228,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:229,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:239,14'
          Dst:             _rotl
        - Src:             'libfreerdp/codec/xcrush.c:245,14'
          Dst:             _rotl
        - Src:             'libfreerdp/codec/xcrush.c:250,9'
          Dst:             xcrush_append_chunk
        - Src:             'libfreerdp/codec/xcrush.c:255,14'
          Dst:             _rotl
        - Src:             'libfreerdp/codec/xcrush.c:260,9'
          Dst:             xcrush_append_chunk
        - Src:             'libfreerdp/codec/xcrush.c:265,14'
          Dst:             _rotl
        - Src:             'libfreerdp/codec/xcrush.c:270,9'
          Dst:             xcrush_append_chunk
        - Src:             'libfreerdp/codec/xcrush.c:275,14'
          Dst:             _rotl
        - Src:             'libfreerdp/codec/xcrush.c:280,9'
          Dst:             xcrush_append_chunk
        - Src:             'libfreerdp/codec/xcrush.c:285,26'
          Dst:             xcrush_append_chunk
    - functionName:    xcrush_generate_output
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         125
      ICount:          605
      EdgeCount:       145
      CyclomaticComplexity: 22
      functionsReached:
        - winpr_Data_Write_UINT16
        - winpr_Data_Write_UINT32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:691,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:692,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:693,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:694,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:702,40'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:702,40'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:702,2'
          Dst:             winpr_Data_Write_UINT16
        - Src:             'libfreerdp/codec/xcrush.c:713,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:713,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:712,3'
          Dst:             winpr_Data_Write_UINT16
        - Src:             'libfreerdp/codec/xcrush.c:716,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:720,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:720,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:719,3'
          Dst:             winpr_Data_Write_UINT16
        - Src:             'libfreerdp/codec/xcrush.c:721,3'
          Dst:             winpr_Data_Write_UINT32
    - functionName:    xcrush_optimize_matches
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          310
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:624,2'
          Dst:             winpr_int_assert
    - functionName:    xcrush_find_all_matches
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 609
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          396
      EdgeCount:       76
      CyclomaticComplexity: 21
      functionsReached:
        - winpr_int_assert
        - xcrush_find_match_length
        - xcrush_find_next_matching_chunk
        - xcrush_insert_chunk
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:523,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:535,12'
          Dst:             xcrush_insert_chunk
        - Src:             'libfreerdp/codec/xcrush.c:550,15'
          Dst:             xcrush_find_match_length
        - Src:             'libfreerdp/codec/xcrush.c:575,14'
          Dst:             xcrush_find_next_matching_chunk
    - functionName:    xcrush_compute_signatures
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - xcrush_compute_chunks
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:299,6'
          Dst:             xcrush_compute_chunks
    - functionName:    xcrush_copy_bytes_no_overlap
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 771
      functionLinenumberEnd: 786
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          177
      EdgeCount:       44
      CyclomaticComplexity: 9
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:774,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:774,22'
          Dst:             winpr_int_assert
    - functionName:    xcrush_copy_bytes
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 790
      functionLinenumberEnd: 800
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          88
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
        - xcrush_copy_bytes_no_overlap
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:791,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:792,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:797,10'
          Dst:             xcrush_copy_bytes_no_overlap
    - 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:    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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:60,3'
          Dst:             winpr_int_assert
    - functionName:    xcrush_context_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1210
      functionLinenumberEnd: 1216
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mppc_context_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:1213,3'
          Dst:             mppc_context_free
    - functionName:    xcrush_context_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1189
      functionLinenumberEnd: 1207
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - mppc_context_new
        - xcrush_context_free
        - xcrush_context_reset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:1190,44'
          Dst:             calloc
        - Src:             'libfreerdp/codec/xcrush.c:1196,17'
          Dst:             mppc_context_new
        - Src:             'libfreerdp/codec/xcrush.c:1200,2'
          Dst:             xcrush_context_reset
        - Src:             'libfreerdp/codec/xcrush.c:1204,2'
          Dst:             xcrush_context_free
    - functionName:    xcrush_context_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1167
      functionLinenumberEnd: 1186
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          89
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - mppc_context_reset
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:1168,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:1185,2'
          Dst:             mppc_context_reset
    - functionName:    xcrush_compress_l1
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 984
      functionLinenumberEnd: 1053
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          291
      EdgeCount:       73
      CyclomaticComplexity: 11
      functionsReached:
        - winpr_int_assert
        - xcrush_compute_signatures
        - xcrush_find_all_matches
        - xcrush_generate_output
        - xcrush_optimize_matches
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:992,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:993,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:994,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:995,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:996,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:997,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:1013,20'
          Dst:             xcrush_compute_signatures
        - Src:             'libfreerdp/codec/xcrush.c:1017,13'
          Dst:             xcrush_find_all_matches
        - Src:             'libfreerdp/codec/xcrush.c:1027,14'
          Dst:             xcrush_optimize_matches
        - Src:             'libfreerdp/codec/xcrush.c:1035,14'
          Dst:             xcrush_generate_output
    - functionName:    xcrush_compress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1059
      functionLinenumberEnd: 1164
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         74
      ICount:          372
      EdgeCount:       88
      CyclomaticComplexity: 16
      functionsReached:
        - mppc_compress
        - winpr_int_assert
        - xcrush_compress_l1
        - xcrush_context_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:1071,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:1072,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:1073,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:1074,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:1075,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:1076,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:1089,11'
          Dst:             xcrush_compress_l1
        - Src:             'libfreerdp/codec/xcrush.c:1117,12'
          Dst:             mppc_compress
        - Src:             'libfreerdp/codec/xcrush.c:1128,4'
          Dst:             xcrush_context_reset
    - functionName:    xcrush_decompress_l1
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 806
      functionLinenumberEnd: 931
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         110
      ICount:          599
      EdgeCount:       138
      CyclomaticComplexity: 30
      functionsReached:
        - winpr_Data_Get_UINT16
        - winpr_Data_Get_UINT32
        - winpr_int_assert
        - xcrush_copy_bytes
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:823,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:828,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:829,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:830,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:853,16'
          Dst:             winpr_Data_Get_UINT16
        - Src:             'libfreerdp/codec/xcrush.c:863,18'
          Dst:             winpr_Data_Get_UINT16
        - Src:             'libfreerdp/codec/xcrush.c:864,24'
          Dst:             winpr_Data_Get_UINT16
        - Src:             'libfreerdp/codec/xcrush.c:866,8'
          Dst:             winpr_Data_Get_UINT32
        - Src:             'libfreerdp/codec/xcrush.c:888,5'
          Dst:             xcrush_copy_bytes
        - Src:             'libfreerdp/codec/xcrush.c:903,4'
          Dst:             xcrush_copy_bytes
        - Src:             'libfreerdp/codec/xcrush.c:911,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:911,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:916,3'
          Dst:             xcrush_copy_bytes
    - functionName:    xcrush_decompress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/xcrush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 936
      functionLinenumberEnd: 978
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          185
      EdgeCount:       41
      CyclomaticComplexity: 6
      functionsReached:
        - mppc_decompress
        - winpr_int_assert
        - xcrush_decompress_l1
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/xcrush.c:943,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:948,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:949,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:950,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/xcrush.c:966,7'
          Dst:             xcrush_decompress_l1
        - Src:             'libfreerdp/codec/xcrush.c:971,6'
          Dst:             mppc_decompress
        - Src:             'libfreerdp/codec/xcrush.c:976,11'
          Dst:             xcrush_decompress_l1
    - functionName:    BitStream_Prefetch
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          155
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/bitstream.h:53,3'
          Dst:             winpr_int_assert
    - functionName:    mppc_context_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/mppc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 858
      functionLinenumberEnd: 864
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - BitStream_Free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/mppc.c:861,3'
          Dst:             BitStream_Free
    - functionName:    mppc_context_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/mppc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 824
      functionLinenumberEnd: 855
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          80
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - BitStream_New
        - calloc
        - mppc_context_free
        - mppc_context_reset
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/mppc.c:825,23'
          Dst:             calloc
        - Src:             'libfreerdp/codec/mppc.c:843,13'
          Dst:             BitStream_New
        - Src:             'libfreerdp/codec/mppc.c:848,2'
          Dst:             mppc_context_reset
        - Src:             'libfreerdp/codec/mppc.c:853,2'
          Dst:             mppc_context_free
    - functionName:    mppc_context_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/mppc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 805
      functionLinenumberEnd: 821
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/mppc.c:806,2'
          Dst:             winpr_int_assert
    - functionName:    mppc_set_compression_level
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/mppc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 789
      functionLinenumberEnd: 802
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          51
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/mppc.c:790,2'
          Dst:             winpr_int_assert
    - functionName:    BitStream_Flush
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          148
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/bitstream.h:87,3'
          Dst:             winpr_int_assert
    - functionName:    BitStream_Write_Bits
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          141
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - BitStream_Flush
        - winpr_int_assert
      functionUses:    26
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/bitstream.h:147,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/bitstream.h:159,4'
          Dst:             BitStream_Flush
    - functionName:    mppc_compress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/mppc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 786
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         246
      ICount:          1361
      EdgeCount:       316
      CyclomaticComplexity: 72
      functionsReached:
        - BitStream_Attach
        - BitStream_Flush
        - BitStream_Write_Bits
        - mppc_context_reset
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/mppc.c:463,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/mppc.c:464,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/mppc.c:465,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/mppc.c:466,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/mppc.c:467,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/mppc.c:468,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/mppc.c:471,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/mppc.c:474,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/mppc.c:507,2'
          Dst:             BitStream_Attach
        - Src:             'libfreerdp/codec/mppc.c:532,5'
          Dst:             mppc_context_reset
        - Src:             'libfreerdp/codec/mppc.c:548,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:554,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:581,5'
          Dst:             mppc_context_reset
        - Src:             'libfreerdp/codec/mppc.c:595,6'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:601,6'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:607,6'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:613,6'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:622,6'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:628,6'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:634,6'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:643,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:649,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:655,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:661,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:667,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:673,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:679,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:685,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:691,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:697,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:703,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:709,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:716,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:723,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:730,5'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:741,4'
          Dst:             mppc_context_reset
        - Src:             'libfreerdp/codec/mppc.c:757,4'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:763,4'
          Dst:             BitStream_Write_Bits
        - Src:             'libfreerdp/codec/mppc.c:769,2'
          Dst:             BitStream_Flush
    - functionName:    BitStream_Shift
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          204
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - BitStream_Prefetch
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/bitstream.h:101,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/bitstream.h:123,5'
          Dst:             BitStream_Prefetch
        - Src:             'winpr/include/winpr/bitstream.h:134,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:    BitStream_Fetch
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          157
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - BitStream_Prefetch
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/bitstream.h:70,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/bitstream.h:82,3'
          Dst:             BitStream_Prefetch
    - functionName:    mppc_decompress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/mppc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         147
      ICount:          806
      EdgeCount:       184
      CyclomaticComplexity: 39
      functionsReached:
        - BitStream_Attach
        - BitStream_Fetch
        - BitStream_Shift
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/mppc.c:102,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/mppc.c:103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/mppc.c:104,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/mppc.c:105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/mppc.c:108,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/mppc.c:111,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/mppc.c:116,2'
          Dst:             BitStream_Attach
        - Src:             'libfreerdp/codec/mppc.c:117,2'
          Dst:             BitStream_Fetch
        - Src:             'libfreerdp/codec/mppc.c:151,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/mppc.c:164,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:176,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:192,5'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:201,5'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:210,5'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:219,5'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:236,5'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:245,5'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:254,5'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:275,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:284,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:293,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:302,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:311,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:320,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:329,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:338,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:347,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:356,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:365,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:374,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:383,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:392,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:401,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/mppc.c:415,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/mppc.c:423,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    clear_decompress_subcode_rlex
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         144
      ICount:          778
      EdgeCount:       179
      CyclomaticComplexity: 37
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - FreeRDPGetColor
        - FreeRDPWriteColor
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:170,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:173,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:175,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:180,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:180,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:184,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:192,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:193,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:194,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:195,16'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/codec/clear.c:208,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:211,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:212,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:220,9'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:223,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/clear.c:228,10'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:231,5'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/clear.c:238,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:238,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:245,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:245,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:254,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:254,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:262,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:262,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:271,48'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:275,5'
          Dst:             FreeRDPWriteColor
        - Src:             'libfreerdp/codec/clear.c:288,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:288,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:296,48'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:302,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:302,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:309,5'
          Dst:             FreeRDPWriteColor
        - Src:             'libfreerdp/codec/clear.c:323,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:323,3'
          Dst:             WLog_PrintTextMessage
    - 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:    20
      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:    9
      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_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:    6
      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:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      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:    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_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:    clear_decompress_nscodec
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        13
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          79
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Pointer
        - Stream_Seek
        - nsc_process_message
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:141,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:144,51'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/clear.c:144,7'
          Dst:             nsc_process_message
        - Src:             'libfreerdp/codec/clear.c:147,2'
          Dst:             Stream_Seek
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Get_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:347,10'
          Dst:             stream_read_u8
    - functionName:    Stream_Get_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:413,10'
          Dst:             stream_read_u32_le
    - functionName:    Stream_Get_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u16_le
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:369,10'
          Dst:             stream_read_u16_le
    - functionName:    FreeRDPConvertColor
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetColor
        - FreeRDPSplitColor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:277,3'
          Dst:             FreeRDPSplitColor
        - Src:             'include/freerdp/codec/color.h:278,10'
          Dst:             FreeRDPGetColor
    - functionName:    resize_vbar_entry
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 572
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          176
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_aligned_recalloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:575,22'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:580,14'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/codec/clear.c:584,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:584,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:597,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:597,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    convert_color
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        13
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          87
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_image_copy_no_overlap
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:128,9'
          Dst:             freerdp_image_copy_no_overlap
    - functionName:    clear_reset_glyph_cache
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_aligned_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:111,3'
          Dst:             winpr_aligned_free
    - functionName:    clear_context_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1332
      functionLinenumberEnd: 1343
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - clear_reset_glyph_cache
        - clear_reset_vbar_storage
        - nsc_context_free
        - winpr_aligned_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:1336,2'
          Dst:             nsc_context_free
        - Src:             'libfreerdp/codec/clear.c:1337,2'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/clear.c:1339,2'
          Dst:             clear_reset_vbar_storage
        - Src:             'libfreerdp/codec/clear.c:1340,2'
          Dst:             clear_reset_glyph_cache
        - Src:             'libfreerdp/codec/clear.c:1342,2'
          Dst:             winpr_aligned_free
    - functionName:    clear_reset_vbar_storage
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          97
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_aligned_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:90,4'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/clear.c:100,4'
          Dst:             winpr_aligned_free
    - functionName:    clear_resize_buffer
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         62
      ICount:          256
      EdgeCount:       73
      CyclomaticComplexity: 13
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_aligned_recalloc
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:337,21'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:344,45'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/clear.c:344,45'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/clear.c:343,22'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/codec/clear.c:348,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:348,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:354,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/clear.c:354,21'
          Dst:             winpr_int_assert
    - functionName:    clear_context_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1298
      functionLinenumberEnd: 1329
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          93
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Get
        - clear_context_free
        - clear_context_reset
        - clear_resize_buffer
        - nsc_context_new
        - updateContextFormat
        - winpr_aligned_calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:1299,41'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/clear.c:1303,15'
          Dst:             WLog_Get
        - Src:             'libfreerdp/codec/clear.c:1305,15'
          Dst:             nsc_context_new
        - Src:             'libfreerdp/codec/clear.c:1310,7'
          Dst:             updateContextFormat
        - Src:             'libfreerdp/codec/clear.c:1313,7'
          Dst:             clear_resize_buffer
        - Src:             'libfreerdp/codec/clear.c:1319,7'
          Dst:             clear_context_reset
        - Src:             'libfreerdp/codec/clear.c:1326,2'
          Dst:             clear_context_free
    - functionName:    updateContextFormat
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1054
      functionLinenumberEnd: 1076
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          116
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - FreeRDPAreColorFormatsEqualNoAlpha
        - FreeRDPGetColorFormatName
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nsc_context_set_parameters
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:1062,9'
          Dst:             FreeRDPAreColorFormatsEqualNoAlpha
        - Src:             'libfreerdp/codec/clear.c:1064,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1064,5'
          Dst:             FreeRDPGetColorFormatName
        - Src:             'libfreerdp/codec/clear.c:1064,5'
          Dst:             FreeRDPGetColorFormatName
        - Src:             'libfreerdp/codec/clear.c:1064,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1075,9'
          Dst:             nsc_context_set_parameters
    - functionName:    clear_context_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1285
      functionLinenumberEnd: 1295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    clear_compress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1278
      functionLinenumberEnd: 1280
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:1279,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1279,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    clear_decompress_subcodecs_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 568
      functionDepth:   0
      returnType:      int
      argCount:        13
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         78
      ICount:          505
      EdgeCount:       96
      CyclomaticComplexity: 20
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT16
        - Stream_Get_UINT32
        - Stream_Get_UINT8
        - Stream_Pointer
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - clear_decompress_nscodec
        - clear_decompress_subcode_rlex
        - clear_resize_buffer
        - convert_color
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/clear.c:519,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:465,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:470,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:473,25'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/codec/clear.c:474,25'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/codec/clear.c:475,24'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/codec/clear.c:476,25'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/codec/clear.c:477,38'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/codec/clear.c:478,28'
          Dst:             Stream_Get_UINT8
        - Src:             'libfreerdp/codec/clear.c:481,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:488,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:488,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:495,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:495,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:503,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:503,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:510,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:510,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:516,8'
          Dst:             clear_resize_buffer
        - Src:             'libfreerdp/codec/clear.c:523,37'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:528,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:528,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:535,24'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/clear.c:534,10'
          Dst:             convert_color
        - Src:             'libfreerdp/codec/clear.c:539,5'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/codec/clear.c:544,10'
          Dst:             clear_decompress_nscodec
        - Src:             'libfreerdp/codec/clear.c:552,10'
          Dst:             clear_decompress_subcode_rlex
        - Src:             'libfreerdp/codec/clear.c:560,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:560,5'
          Dst:             WLog_PrintTextMessage
    - functionName:    clear_decompress_bands_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 927
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         233
      ICount:          1368
      EdgeCount:       292
      CyclomaticComplexity: 61
      functionsReached:
        - FreeRDPConvertColor
        - FreeRDPGetBytesPerPixel
        - FreeRDPGetColor
        - FreeRDPReadColor
        - FreeRDPWriteColor
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - resize_vbar_entry
        - stream_read_u16_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:615,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:635,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:638,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/clear.c:639,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/clear.c:640,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/clear.c:641,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/clear.c:642,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:643,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:644,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:646,14'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/codec/clear.c:650,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:650,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:657,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:657,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:672,9'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:675,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/clear.c:681,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:681,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:692,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:692,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:697,10'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:700,5'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:712,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:712,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:721,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:721,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:726,10'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:732,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:732,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:742,10'
          Dst:             resize_vbar_entry
        - Src:             'libfreerdp/codec/clear.c:751,38'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:753,6'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:754,6'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:755,6'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:756,14'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/codec/clear.c:758,11'
          Dst:             FreeRDPWriteColor
        - Src:             'libfreerdp/codec/clear.c:775,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:775,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:779,11'
          Dst:             resize_vbar_entry
        - Src:             'libfreerdp/codec/clear.c:785,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:785,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:797,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:797,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:808,10'
          Dst:             resize_vbar_entry
        - Src:             'libfreerdp/codec/clear.c:823,7'
          Dst:             FreeRDPWriteColor
        - Src:             'libfreerdp/codec/clear.c:824,20'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:841,33'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:845,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:845,7'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:853,46'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:853,14'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/codec/clear.c:856,11'
          Dst:             FreeRDPWriteColor
        - Src:             'libfreerdp/codec/clear.c:859,19'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:870,12'
          Dst:             FreeRDPWriteColor
        - Src:             'libfreerdp/codec/clear.c:873,20'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:883,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:883,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:888,10'
          Dst:             resize_vbar_entry
        - Src:             'libfreerdp/codec/clear.c:913,38'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:914,21'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/codec/clear.c:915,14'
          Dst:             FreeRDPConvertColor
        - Src:             'libfreerdp/codec/clear.c:917,11'
          Dst:             FreeRDPWriteColor
        - Src:             'libfreerdp/codec/clear.c:920,20'
          Dst:             FreeRDPGetBytesPerPixel
    - functionName:    clear_decompress_residual_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 453
      functionDepth:   0
      returnType:      int
      argCount:        13
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          364
      EdgeCount:       74
      CyclomaticComplexity: 16
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - FreeRDPGetColor
        - FreeRDPWriteColor
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - clear_resize_buffer
        - convert_color
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:375,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:382,7'
          Dst:             clear_resize_buffer
        - Src:             'libfreerdp/codec/clear.c:395,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:398,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:399,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:400,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:401,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:403,11'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/codec/clear.c:407,9'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:410,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/clear.c:415,10'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:418,5'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/clear.c:425,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:425,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:434,4'
          Dst:             FreeRDPWriteColor
        - Src:             'libfreerdp/codec/clear.c:435,17'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:441,22'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:445,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:445,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:450,9'
          Dst:             convert_color
    - functionName:    clear_decompress_glyph_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 936
      functionLinenumberEnd: 1050
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         136
      ICount:          670
      EdgeCount:       168
      CyclomaticComplexity: 34
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - convert_color
        - stream_read_u16_le
        - winpr_aligned_recalloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:944,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:944,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:953,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:953,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:958,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:961,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/codec/clear.c:965,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:965,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:977,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:977,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:986,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:986,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:993,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:993,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:999,23'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:1000,10'
          Dst:             convert_color
        - Src:             'libfreerdp/codec/clear.c:1006,22'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/clear.c:1013,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1013,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1022,16'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/codec/clear.c:1026,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1026,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1032,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/clear.c:1032,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/clear.c:1039,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1039,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    clear_decompress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/clear.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1083
      functionLinenumberEnd: 1270
      functionDepth:   0
      returnType:      int
      argCount:        13
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         203
      ICount:          921
      EdgeCount:       251
      CyclomaticComplexity: 50
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetRemainingLength
        - Stream_StaticConstInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - clear_decompress_bands_data
        - clear_decompress_glyph_data
        - clear_decompress_residual_data
        - clear_decompress_subcodecs_data
        - clear_reset_vbar_storage
        - freerdp_image_copy_no_overlap
        - stream_read_u32_le
        - stream_read_u8
        - updateContextFormat
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/clear.c:1104,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1104,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1111,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1111,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1116,15'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/codec/clear.c:1121,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/codec/clear.c:1124,7'
          Dst:             updateContextFormat
        - Src:             'libfreerdp/codec/clear.c:1127,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:1128,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/codec/clear.c:1135,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1135,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1137,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1137,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1146,3'
          Dst:             clear_reset_vbar_storage
        - Src:             'libfreerdp/codec/clear.c:1149,7'
          Dst:             clear_decompress_glyph_data
        - Src:             'libfreerdp/codec/clear.c:1153,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1153,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1158,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/codec/clear.c:1165,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1165,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1172,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/clear.c:1173,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/clear.c:1174,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/codec/clear.c:1178,8'
          Dst:             clear_decompress_residual_data
        - Src:             'libfreerdp/codec/clear.c:1182,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1182,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1189,8'
          Dst:             clear_decompress_bands_data
        - Src:             'libfreerdp/codec/clear.c:1192,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1192,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1199,8'
          Dst:             clear_decompress_subcodecs_data
        - Src:             'libfreerdp/codec/clear.c:1203,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1203,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1213,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1213,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1220,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1220,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1229,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1229,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1238,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1238,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1245,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1245,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1254,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/clear.c:1254,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/clear.c:1260,8'
          Dst:             freerdp_image_copy_no_overlap
    - functionName:    STORE_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/../../primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    63
      BranchProfiles:  []
      Callsites:       []
    - functionName:    LOAD_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/../../primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    93
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rfx_dwt_2d_encode_sse2
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/rfx_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 463
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         135
      ICount:          3213
      EdgeCount:       175
      CyclomaticComplexity: 42
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:464,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:465,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:458,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:458,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:458,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:459,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:459,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:459,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:458,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:458,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:458,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:459,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:459,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:459,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:449,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:458,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:458,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:458,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:459,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:459,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:459,2'
          Dst:             STORE_SI128
    - functionName:    rfx_dwt_2d_decode_sse2
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/rfx_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         171
      ICount:          3460
      EdgeCount:       223
      CyclomaticComplexity: 54
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:347,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:348,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:336,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:340,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:342,2'
          Dst:             STORE_SI128
    - functionName:    rfx_quantization_encode_sse2
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/rfx_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         452
      ICount:          3028
      EdgeCount:       541
      CyclomaticComplexity: 91
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:145,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:146,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:147,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:160,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:160,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:159,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:159,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:159,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:159,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:162,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:162,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:161,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:161,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:161,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:161,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:164,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:164,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:163,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:163,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:163,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:163,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:166,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:166,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:165,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:165,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:165,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:165,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:168,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:168,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:167,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:167,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:167,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:167,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:170,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:170,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:169,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:169,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:169,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:169,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:172,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:172,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:171,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:171,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:171,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:171,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:174,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:174,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:173,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:173,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:173,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:173,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:176,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:176,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:175,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:175,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:175,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:175,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:178,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:178,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:177,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:177,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:177,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:177,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:179,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:179,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:179,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:179,2'
          Dst:             STORE_SI128
    - functionName:    rfx_quantization_decode_sse2
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/rfx_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         221
      ICount:          1347
      EdgeCount:       274
      CyclomaticComplexity: 55
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:93,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:94,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:95,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:105,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:105,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:106,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:106,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:106,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:106,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:107,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:107,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:107,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:107,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:108,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:108,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:108,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:108,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:109,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:109,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:109,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:109,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:110,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:110,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:110,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:110,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:111,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:111,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:111,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:111,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:112,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:112,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:112,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:112,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:113,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:113,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:113,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:113,2'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:114,2'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:114,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:114,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:114,2'
          Dst:             STORE_SI128
    - 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:    rfx_init_sse2_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/rfx_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          37
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/sse/rfx_sse2.c:477,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    LOAD_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/../../primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nsc_encode_next_rgb8
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          407
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nsc_encode_next_a4
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          465
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nsc_encode_next_rgb16
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         507
      ICount:          2231
      EdgeCount:       579
      CyclomaticComplexity: 74
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:174,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:174,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:175,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:175,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:176,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:176,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:177,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:177,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:178,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:178,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:179,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:179,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:180,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:180,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:181,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:181,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:183,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:183,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:185,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:185,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:187,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:187,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:189,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:189,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:191,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:191,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:193,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:193,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:195,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:195,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:197,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:197,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:199,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:199,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:201,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:201,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:203,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:203,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:205,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:205,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:207,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:207,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:209,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:209,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:211,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:211,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:213,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:213,6'
          Dst:             winpr_int_assert
    - functionName:    nsc_encode_next_bgr16
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         507
      ICount:          2231
      EdgeCount:       579
      CyclomaticComplexity: 74
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:127,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:127,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:128,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:128,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:129,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:129,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:130,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:130,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:131,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:131,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:132,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:132,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:133,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:133,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:134,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:134,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:136,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:136,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:138,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:138,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:140,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:140,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:142,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:142,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:144,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:144,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:146,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:146,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:148,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:148,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:150,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:150,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:152,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:152,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:154,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:154,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:156,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:156,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:158,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:158,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:160,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:160,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:162,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:162,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:164,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:164,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:166,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:166,6'
          Dst:             winpr_int_assert
    - functionName:    nsc_encode_next_rgb24
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          271
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nsc_encode_next_bgr24
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          271
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nsc_encode_next_rgba32
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          293
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nsc_encode_next_rgbx32
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          271
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nsc_encode_next_bgra32
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          293
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nsc_encode_next_bgrx32
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          271
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    STORE_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/../../primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nsc_encode_next_rgba
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      size_t
      argCount:        7
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          148
      EdgeCount:       29
      CyclomaticComplexity: 16
      functionsReached:
        - nsc_encode_next_a4
        - nsc_encode_next_bgr16
        - nsc_encode_next_bgr24
        - nsc_encode_next_bgra32
        - nsc_encode_next_bgrx32
        - nsc_encode_next_rgb16
        - nsc_encode_next_rgb24
        - nsc_encode_next_rgb8
        - nsc_encode_next_rgba32
        - nsc_encode_next_rgbx32
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/sse/nsc_sse2.c:269,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:272,11'
          Dst:             nsc_encode_next_bgrx32
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:275,11'
          Dst:             nsc_encode_next_bgra32
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:278,11'
          Dst:             nsc_encode_next_rgbx32
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:281,11'
          Dst:             nsc_encode_next_rgba32
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:284,11'
          Dst:             nsc_encode_next_bgr24
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:287,11'
          Dst:             nsc_encode_next_rgb24
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:290,11'
          Dst:             nsc_encode_next_bgr16
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:293,11'
          Dst:             nsc_encode_next_rgb16
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:296,11'
          Dst:             nsc_encode_next_a4
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:299,11'
          Dst:             nsc_encode_next_rgb8
    - functionName:    nsc_encode_subsampling_sse2
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          382
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:407,17'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:408,25'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:412,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:418,17'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:419,25'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:423,5'
          Dst:             STORE_SI128
    - functionName:    nsc_encode_argb_to_aycocg_sse2
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          735
      EdgeCount:       66
      CyclomaticComplexity: 15
      functionsReached:
        - STORE_SI128
        - nsc_encode_next_rgba
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:316,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:316,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:333,22'
          Dst:             nsc_encode_next_rgba
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:346,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:348,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:350,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:352,4'
          Dst:             STORE_SI128
    - functionName:    nsc_encode_sse2
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - nsc_encode_argb_to_aycocg_sse2
        - nsc_encode_subsampling_sse2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:436,7'
          Dst:             nsc_encode_argb_to_aycocg_sse2
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:440,10'
          Dst:             nsc_encode_subsampling_sse2
    - 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:    nsc_init_sse2_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/sse/nsc_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          22
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/sse/nsc_sse2.c:449,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:    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:    rfx_init_neon_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/neon/rfx_neon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 539
      functionLinenumberEnd: 552
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/neon/rfx_neon.c:549,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:    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:    nsc_init_neon_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/neon/nsc_neon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 43
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/neon/nsc_neon.c:41,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    primitives_init_optimized
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - primitives_init_YCoCg_opt
        - primitives_init_YUV_opt
        - primitives_init_add_opt
        - primitives_init_alphaComp_opt
        - primitives_init_andor_opt
        - primitives_init_colors_opt
        - primitives_init_copy_opt
        - primitives_init_generic
        - primitives_init_set_opt
        - primitives_init_shift_opt
        - primitives_init_sign_opt
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/primitives.c:94,2'
          Dst:             primitives_init_generic
        - Src:             'libfreerdp/primitives/primitives.c:97,2'
          Dst:             primitives_init_add_opt
        - Src:             'libfreerdp/primitives/primitives.c:98,2'
          Dst:             primitives_init_andor_opt
        - Src:             'libfreerdp/primitives/primitives.c:99,2'
          Dst:             primitives_init_alphaComp_opt
        - Src:             'libfreerdp/primitives/primitives.c:100,2'
          Dst:             primitives_init_copy_opt
        - Src:             'libfreerdp/primitives/primitives.c:101,2'
          Dst:             primitives_init_set_opt
        - Src:             'libfreerdp/primitives/primitives.c:102,2'
          Dst:             primitives_init_shift_opt
        - Src:             'libfreerdp/primitives/primitives.c:103,2'
          Dst:             primitives_init_sign_opt
        - Src:             'libfreerdp/primitives/primitives.c:104,2'
          Dst:             primitives_init_colors_opt
        - Src:             'libfreerdp/primitives/primitives.c:105,2'
          Dst:             primitives_init_YCoCg_opt
        - Src:             'libfreerdp/primitives/primitives.c:106,2'
          Dst:             primitives_init_YUV_opt
    - functionName:    primitives_init_generic
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - primitives_init_YCoCg
        - primitives_init_YUV
        - primitives_init_add
        - primitives_init_alphaComp
        - primitives_init_andor
        - primitives_init_colors
        - primitives_init_copy
        - primitives_init_set
        - primitives_init_shift
        - primitives_init_sign
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/primitives.c:70,2'
          Dst:             primitives_init_add
        - Src:             'libfreerdp/primitives/primitives.c:71,2'
          Dst:             primitives_init_andor
        - Src:             'libfreerdp/primitives/primitives.c:72,2'
          Dst:             primitives_init_alphaComp
        - Src:             'libfreerdp/primitives/primitives.c:73,2'
          Dst:             primitives_init_copy
        - Src:             'libfreerdp/primitives/primitives.c:74,2'
          Dst:             primitives_init_set
        - Src:             'libfreerdp/primitives/primitives.c:75,2'
          Dst:             primitives_init_shift
        - Src:             'libfreerdp/primitives/primitives.c:76,2'
          Dst:             primitives_init_sign
        - Src:             'libfreerdp/primitives/primitives.c:77,2'
          Dst:             primitives_init_colors
        - Src:             'libfreerdp/primitives/primitives.c:78,2'
          Dst:             primitives_init_YCoCg
        - Src:             'libfreerdp/primitives/primitives.c:79,2'
          Dst:             primitives_init_YUV
    - functionName:    primitives_auto_init_cb
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - primitives_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/primitives.c:318,9'
          Dst:             primitives_init
    - functionName:    primitives_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 344
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       19
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_Print_dbg_tag
        - primitives_autodetect_best
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/primitives.c:323,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/primitives.c:326,11'
          Dst:             primitives_autodetect_best
        - Src:             'libfreerdp/primitives/primitives.c:341,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    primitives_autodetect_best
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          87
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - primitives_get_by_type
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/primitives.c:232,16'
          Dst:             primitives_get_by_type
        - Src:             'libfreerdp/primitives/primitives.c:235,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/primitives/primitives.c:238,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/primitives/primitives.c:275,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/primitives/primitives.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:    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:    primitives_get_by_type
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - primitives_init_cpu_cb
        - primitives_init_generic_cb
        - winpr_InitOnceExecuteOnce
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/primitives.c:398,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/primitives.c:394,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'libfreerdp/primitives/primitives.c:394,7'
          Dst:             primitives_init_generic_cb
        - Src:             'libfreerdp/primitives/primitives.c:409,9'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'libfreerdp/primitives/primitives.c:409,9'
          Dst:             primitives_init_cpu_cb
    - functionName:    primitives_init_generic_cb
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - primitives_init_generic
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/primitives.c:89,9'
          Dst:             primitives_init_generic
    - functionName:    primitives_init_cpu_cb
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - primitives_init_optimized
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/primitives.c:308,10'
          Dst:             primitives_init_optimized
    - functionName:    primtives_hint_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 455
      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:   'libfreerdp/primitives/primitives.c:442,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    primitives_avc444_frame_type_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       10
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/primitives.c:427,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    primitives_flags
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    primitives_get_generic
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - primitives_init_generic_cb
        - winpr_InitOnceExecuteOnce
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/primitives.c:386,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'libfreerdp/primitives/primitives.c:386,7'
          Dst:             primitives_init_generic_cb
    - functionName:    setup
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          39
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - primitives_auto_init_cb
        - primitives_init_cpu_cb
        - primitives_init_generic_cb
        - winpr_InitOnceExecuteOnce
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/primitives.c:363,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'libfreerdp/primitives/primitives.c:363,7'
          Dst:             primitives_init_generic_cb
        - Src:             'libfreerdp/primitives/primitives.c:367,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'libfreerdp/primitives/primitives.c:367,7'
          Dst:             primitives_init_cpu_cb
        - Src:             'libfreerdp/primitives/primitives.c:374,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'libfreerdp/primitives/primitives.c:374,7'
          Dst:             primitives_auto_init_cb
    - functionName:    primitives_get
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - setup
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/primitives.c:380,2'
          Dst:             setup
    - functionName:    primitives_uninit
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    primitives_get_hints
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    primitives_set_hints
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/primitives.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pcap_write_record_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/pcap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          50
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - fwrite
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/pcap.c:76,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:77,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:79,9'
          Dst:             fwrite
    - functionName:    pcap_write_record
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/pcap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          69
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - fwrite
        - pcap_write_record_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/pcap.c:106,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:107,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:109,9'
          Dst:             pcap_write_record_header
        - Src:             'libfreerdp/utils/pcap.c:110,10'
          Dst:             fwrite
    - functionName:    pcap_flush
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/pcap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          65
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - fflush
        - pcap_write_record
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/pcap.c:241,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:245,9'
          Dst:             pcap_write_record
        - Src:             'libfreerdp/utils/pcap.c:250,9'
          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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pcap_close
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/pcap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fclose
        - pcap_flush
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/pcap.c:258,2'
          Dst:             pcap_flush
        - Src:             'libfreerdp/utils/pcap.c:261,9'
          Dst:             fclose
    - functionName:    pcap_read_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/pcap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          50
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - fread
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/pcap.c:52,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:53,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:55,9'
          Dst:             fread
    - 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/libfreerdp/utils/pcap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          50
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - fwrite
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/pcap.c:60,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:61,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:63,9'
          Dst:             fwrite
    - functionName:    pcap_open
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/pcap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          177
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - _fseeki64
        - _ftelli64
        - _strdup
        - calloc
        - pcap_close
        - pcap_read_header
        - pcap_write_header
        - winpr_fopen
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/pcap.c:192,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:194,28'
          Dst:             calloc
        - Src:             'libfreerdp/utils/pcap.c:198,15'
          Dst:             _strdup
        - Src:             'libfreerdp/utils/pcap.c:204,13'
          Dst:             winpr_fopen
        - Src:             'libfreerdp/utils/pcap.c:218,8'
          Dst:             pcap_write_header
        - Src:             'libfreerdp/utils/pcap.c:223,7'
          Dst:             _fseeki64
        - Src:             'libfreerdp/utils/pcap.c:225,21'
          Dst:             _ftelli64
        - Src:             'libfreerdp/utils/pcap.c:226,7'
          Dst:             _fseeki64
        - Src:             'libfreerdp/utils/pcap.c:228,8'
          Dst:             pcap_read_header
        - Src:             'libfreerdp/utils/pcap.c:235,2'
          Dst:             pcap_close
    - 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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:504,9'
          Dst:             ftello64
    - functionName:    pcap_read_record
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/pcap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          109
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - fread
        - pcap_read_record_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/pcap.c:84,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:85,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:87,7'
          Dst:             pcap_read_record_header
        - Src:             'libfreerdp/utils/pcap.c:95,6'
          Dst:             fread
    - functionName:    pcap_read_record_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/pcap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          50
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - fread
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/pcap.c:68,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:69,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:71,9'
          Dst:             fread
    - functionName:    pcap_get_next_record
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/pcap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          59
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - pcap_has_next_record
        - pcap_read_record
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/pcap.c:184,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:185,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:187,9'
          Dst:             pcap_has_next_record
        - Src:             'libfreerdp/utils/pcap.c:187,39'
          Dst:             pcap_read_record
    - functionName:    pcap_has_next_record
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/pcap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - _ftelli64
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/pcap.c:155,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:157,29'
          Dst:             _ftelli64
    - functionName:    pcap_get_next_record_content
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/pcap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          56
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - fread
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/pcap.c:176,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:177,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:179,9'
          Dst:             fread
    - functionName:    pcap_get_next_record_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/pcap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          67
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - pcap_has_next_record
        - pcap_read_record_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/pcap.c:162,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:163,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:165,6'
          Dst:             pcap_has_next_record
        - Src:             'libfreerdp/utils/pcap.c:168,2'
          Dst:             pcap_read_record_header
    - functionName:    pcap_add_record
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/pcap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          180
      EdgeCount:       40
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - winpr_GetUnixTimeNS
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/pcap.c:115,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:116,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:117,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/pcap.c:119,38'
          Dst:             calloc
        - Src:             'libfreerdp/utils/pcap.c:128,20'
          Dst:             winpr_GetUnixTimeNS
    - functionName:    ringbuffer_commit_read_bytes
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/ringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          110
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - ringbuffer_realloc
        - ringbuffer_used
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/ringbuffer.c:300,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/ringbuffer.c:304,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/ringbuffer.c:310,7'
          Dst:             ringbuffer_used
        - Src:             'libfreerdp/utils/ringbuffer.c:311,3'
          Dst:             ringbuffer_realloc
    - functionName:    ringbuffer_used
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/ringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/ringbuffer.c:58,2'
          Dst:             winpr_int_assert
    - functionName:    ringbuffer_realloc
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/ringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          242
      EdgeCount:       41
      CyclomaticComplexity: 10
      functionsReached:
        - realloc
        - ringbuffer_used
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/ringbuffer.c:80,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/ringbuffer.c:90,20'
          Dst:             realloc
        - Src:             'libfreerdp/utils/ringbuffer.c:108,20'
          Dst:             realloc
        - Src:             'libfreerdp/utils/ringbuffer.c:132,62'
          Dst:             ringbuffer_used
    - functionName:    ringbuffer_peek
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/ringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          179
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/ringbuffer.c:265,2'
          Dst:             winpr_int_assert
    - functionName:    ringbuffer_commit_written_bytes
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/ringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          79
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/ringbuffer.c:245,2'
          Dst:             winpr_int_assert
    - functionName:    ringbuffer_ensure_linear_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/ringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          155
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - ringbuffer_realloc
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/ringbuffer.c:212,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/ringbuffer.c:215,8'
          Dst:             ringbuffer_realloc
    - functionName:    ringbuffer_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/ringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          166
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - ringbuffer_realloc
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/ringbuffer.c:175,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/ringbuffer.c:178,39'
          Dst:             ringbuffer_realloc
    - functionName:    ringbuffer_destroy
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/ringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ringbuffer_capacity
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/ringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 65
      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:             'libfreerdp/utils/ringbuffer.c:64,2'
          Dst:             winpr_int_assert
    - functionName:    ringbuffer_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/ringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/ringbuffer.c:44,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_del_signal_cleanup_handler
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          110
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - fsig_lock
        - fsig_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/signal.c:100,2'
          Dst:             fsig_lock
        - Src:             'libfreerdp/utils/signal.c:121,2'
          Dst:             fsig_unlock
    - functionName:    freerdp_add_signal_cleanup_handler
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - fsig_lock
        - fsig_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/signal.c:79,2'
          Dst:             fsig_lock
        - Src:             'libfreerdp/utils/signal.c:89,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/utils/signal.c:93,2'
          Dst:             fsig_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:    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:    fsig_term_handler
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          85
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - fsig_lock
        - fsig_unlock
        - strsignal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/signal.c:57,3'
          Dst:             strsignal
        - Src:             'libfreerdp/utils/signal.c:57,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/utils/signal.c:60,2'
          Dst:             fsig_lock
        - Src:             'libfreerdp/utils/signal.c:68,25'
          Dst:             strsignal
        - Src:             'libfreerdp/utils/signal.c:73,2'
          Dst:             fsig_unlock
    - functionName:    strsignal
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_http_status_string_format
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_http_status_string
        - snprintf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/http.c:417,21'
          Dst:             freerdp_http_status_string
        - Src:             'libfreerdp/utils/http.c:418,8'
          Dst:             snprintf
    - functionName:    freerdp_http_status_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         43
      ICount:          216
      EdgeCount:       84
      CyclomaticComplexity: 43
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/utils/http.c:328,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    get_line
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - BIO_read
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/http.c:72,12'
          Dst:             BIO_read
    - functionName:    log_errors_
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          72
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/http.c:49,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/utils/http.c:53,15'
          Dst:             ERR_get_error
        - Src:             'libfreerdp/utils/http.c:57,25'
          Dst:             ERR_error_string
        - Src:             'libfreerdp/utils/http.c:56,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/utils/http.c:60,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    ERR_error_string
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_http_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/http.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         199
      ICount:          863
      EdgeCount:       248
      CyclomaticComplexity: 51
      functionsReached:
        - BIO_ctrl
        - BIO_free_all
        - BIO_new_ssl_connect
        - BIO_read
        - BIO_write
        - ERR_clear_error
        - SSL_CTX_ctrl
        - SSL_CTX_free
        - SSL_CTX_new
        - SSL_CTX_set_default_verify_paths
        - SSL_ctrl
        - TLS_client_method
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - __errno_location
        - _stricmp
        - calloc
        - get_line
        - log_errors_
        - strchr
        - strcmp
        - strlen
        - strncmp
        - strndup
        - strnlen
        - strtok_s
        - strtol
        - strtoul
        - winpr_asprintf
        - winpr_int_assert
        - winpr_strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/http.c:104,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/http.c:105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/http.c:106,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/http.c:108,14'
          Dst:             WLog_Get
        - Src:             'libfreerdp/utils/http.c:109,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/http.c:113,14'
          Dst:             strnlen
        - Src:             'libfreerdp/utils/http.c:113,37'
          Dst:             strncmp
        - Src:             'libfreerdp/utils/http.c:114,15'
          Dst:             strchr
        - Src:             'libfreerdp/utils/http.c:116,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/utils/http.c:116,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/utils/http.c:121,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/http.c:121,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/http.c:122,14'
          Dst:             strndup
        - Src:             'libfreerdp/utils/http.c:131,11'
          Dst:             strlen
        - Src:             'libfreerdp/utils/http.c:132,8'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/utils/http.c:140,8'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/utils/http.c:147,25'
          Dst:             TLS_client_method
        - Src:             'libfreerdp/utils/http.c:147,13'
          Dst:             SSL_CTX_new
        - Src:             'libfreerdp/utils/http.c:151,4'
          Dst:             log_errors_
        - Src:             'libfreerdp/utils/http.c:155,8'
          Dst:             SSL_CTX_set_default_verify_paths
        - Src:             'libfreerdp/utils/http.c:157,4'
          Dst:             log_errors_
        - Src:             'libfreerdp/utils/http.c:161,3'
          Dst:             SSL_CTX_ctrl
        - Src:             'libfreerdp/utils/http.c:163,9'
          Dst:             BIO_new_ssl_connect
        - Src:             'libfreerdp/utils/http.c:166,4'
          Dst:             log_errors_
        - Src:             'libfreerdp/utils/http.c:170,7'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/utils/http.c:172,4'
          Dst:             log_errors_
        - Src:             'libfreerdp/utils/http.c:176,8'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/utils/http.c:178,4'
          Dst:             log_errors_
        - Src:             'libfreerdp/utils/http.c:182,3'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/utils/http.c:185,4'
          Dst:             log_errors_
        - Src:             'libfreerdp/utils/http.c:189,8'
          Dst:             SSL_ctrl
        - Src:             'libfreerdp/utils/http.c:191,4'
          Dst:             log_errors_
        - Src:             'libfreerdp/utils/http.c:195,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/utils/http.c:195,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/utils/http.c:196,3'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/utils/http.c:199,24'
          Dst:             strnlen
        - Src:             'libfreerdp/utils/http.c:203,8'
          Dst:             BIO_write
        - Src:             'libfreerdp/utils/http.c:205,5'
          Dst:             log_errors_
        - Src:             'libfreerdp/utils/http.c:211,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/utils/http.c:211,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/utils/http.c:215,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/utils/http.c:215,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/utils/http.c:219,5'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/utils/http.c:220,9'
          Dst:             BIO_write
        - Src:             'libfreerdp/utils/http.c:222,6'
          Dst:             log_errors_
        - Src:             'libfreerdp/utils/http.c:229,11'
          Dst:             get_line
        - Src:             'libfreerdp/utils/http.c:232,3'
          Dst:             log_errors_
        - Src:             'libfreerdp/utils/http.c:237,43'
          Dst:             strncmp
        - Src:             'libfreerdp/utils/http.c:239,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/utils/http.c:239,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/utils/http.c:243,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/utils/http.c:244,17'
          Dst:             strtol
        - Src:             'libfreerdp/utils/http.c:245,6'
          Dst:             __errno_location
        - Src:             'libfreerdp/utils/http.c:248,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/utils/http.c:248,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/utils/http.c:248,3'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/utils/http.c:248,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/utils/http.c:248,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/utils/http.c:255,12'
          Dst:             get_line
        - Src:             'libfreerdp/utils/http.c:258,4'
          Dst:             log_errors_
        - Src:             'libfreerdp/utils/http.c:263,16'
          Dst:             strtok_s
        - Src:             'libfreerdp/utils/http.c:264,16'
          Dst:             _stricmp
        - Src:             'libfreerdp/utils/http.c:266,4'
          Dst:             __errno_location
        - Src:             'libfreerdp/utils/http.c:267,23'
          Dst:             strtoul
        - Src:             'libfreerdp/utils/http.c:268,8'
          Dst:             __errno_location
        - Src:             'libfreerdp/utils/http.c:271,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/utils/http.c:271,5'
          Dst:             __errno_location
        - Src:             'libfreerdp/utils/http.c:271,5'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/utils/http.c:271,5'
          Dst:             __errno_location
        - Src:             'libfreerdp/utils/http.c:271,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/utils/http.c:276,11'
          Dst:             strcmp
        - Src:             'libfreerdp/utils/http.c:282,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/utils/http.c:282,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/utils/http.c:286,15'
          Dst:             calloc
        - Src:             'libfreerdp/utils/http.c:295,13'
          Dst:             BIO_read
        - Src:             'libfreerdp/utils/http.c:298,5'
          Dst:             log_errors_
        - Src:             'libfreerdp/utils/http.c:308,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/utils/http.c:308,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/utils/http.c:321,2'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/utils/http.c:322,2'
          Dst:             SSL_CTX_free
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_set_default_verify_paths
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_new_ssl_connect
      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:    SSL_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:    3
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unregister_handlers
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/signal_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          78
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - pthread_sigmask
        - sigaction
        - sigdelset
        - sigfillset
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/signal_posix.c:121,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/signal_posix.c:126,2'
          Dst:             pthread_sigmask
        - Src:             'libfreerdp/utils/signal_posix.c:128,2'
          Dst:             sigfillset
        - Src:             'libfreerdp/utils/signal_posix.c:129,2'
          Dst:             sigdelset
        - Src:             'libfreerdp/utils/signal_posix.c:136,3'
          Dst:             sigaction
        - Src:             'libfreerdp/utils/signal_posix.c:139,2'
          Dst:             pthread_sigmask
    - 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:    8
      BranchProfiles:  []
      Callsites:       []
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sigdelset
      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:    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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fatal_handler
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/signal_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - pthread_sigmask
        - raise
        - sigaction
        - sigaddset
        - sigemptyset
        - sigfillset
        - strsignal
        - winpr_log_backtrace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/signal_posix.c:52,3'
          Dst:             strsignal
        - Src:             'libfreerdp/utils/signal_posix.c:52,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/utils/signal_posix.c:54,3'
          Dst:             winpr_log_backtrace
        - Src:             'libfreerdp/utils/signal_posix.c:58,2'
          Dst:             sigfillset
        - Src:             'libfreerdp/utils/signal_posix.c:60,2'
          Dst:             sigaction
        - Src:             'libfreerdp/utils/signal_posix.c:61,2'
          Dst:             sigemptyset
        - Src:             'libfreerdp/utils/signal_posix.c:62,2'
          Dst:             sigaddset
        - Src:             'libfreerdp/utils/signal_posix.c:63,2'
          Dst:             pthread_sigmask
        - Src:             'libfreerdp/utils/signal_posix.c:64,8'
          Dst:             raise
    - 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:    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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sigaddset
      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:    raise
      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:    register_handlers
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/signal_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          120
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - pthread_sigmask
        - sigaction
        - sigdelset
        - sigfillset
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/signal_posix.c:88,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/signal_posix.c:89,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/utils/signal_posix.c:94,2'
          Dst:             pthread_sigmask
        - Src:             'libfreerdp/utils/signal_posix.c:96,2'
          Dst:             sigfillset
        - Src:             'libfreerdp/utils/signal_posix.c:97,2'
          Dst:             sigdelset
        - Src:             'libfreerdp/utils/signal_posix.c:105,7'
          Dst:             sigaction
        - Src:             'libfreerdp/utils/signal_posix.c:109,5'
          Dst:             sigaction
        - Src:             'libfreerdp/utils/signal_posix.c:114,2'
          Dst:             pthread_sigmask
    - functionName:    unregister_all_handlers
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/signal_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unregister_handlers
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/signal_posix.c:144,2'
          Dst:             unregister_handlers
        - Src:             'libfreerdp/utils/signal_posix.c:145,2'
          Dst:             unregister_handlers
    - functionName:    freerdp_handle_signals
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/signal_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - fatal_handler
        - fsig_lock
        - fsig_term_handler
        - fsig_unlock
        - register_handlers
        - signal
        - unregister_all_handlers
        - winpr_atexit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/signal_posix.c:152,2'
          Dst:             fsig_lock
        - Src:             'libfreerdp/utils/signal_posix.c:154,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/utils/signal_posix.c:156,8'
          Dst:             winpr_atexit
        - Src:             'libfreerdp/utils/signal_posix.c:156,8'
          Dst:             unregister_all_handlers
        - Src:             'libfreerdp/utils/signal_posix.c:157,7'
          Dst:             register_handlers
        - Src:             'libfreerdp/utils/signal_posix.c:157,7'
          Dst:             fatal_handler
        - Src:             'libfreerdp/utils/signal_posix.c:159,7'
          Dst:             register_handlers
        - Src:             'libfreerdp/utils/signal_posix.c:159,7'
          Dst:             fsig_term_handler
        - Src:             'libfreerdp/utils/signal_posix.c:163,8'
          Dst:             signal
        - Src:             'libfreerdp/utils/signal_posix.c:167,2'
          Dst:             fsig_unlock
    - functionName:    fsig_lock
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/signal_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - pthread_mutex_lock
        - winpr_strerror
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/signal_posix.c:22,17'
          Dst:             pthread_mutex_lock
        - Src:             'libfreerdp/utils/signal_posix.c:26,3'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/utils/signal_posix.c:26,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    signal
      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:    fsig_unlock
      functionSourceFile: '/src/FreeRDP/libfreerdp/utils/signal_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - pthread_mutex_unlock
        - winpr_strerror
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/utils/signal_posix.c:33,17'
          Dst:             pthread_mutex_unlock
        - Src:             'libfreerdp/utils/signal_posix.c:37,3'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/utils/signal_posix.c:37,3'
          Dst:             WLog_Print_dbg_tag
    - 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:    7
      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:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_load_channel_addin_entry
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/addin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 386
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_load_dynamic_channel_addin_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/addin.c:393,11'
          Dst:             freerdp_load_dynamic_channel_addin_entry
        - Src:             'libfreerdp/common/addin.c:396,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_load_dynamic_channel_addin_entry
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/addin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         63
      ICount:          378
      EdgeCount:       85
      CyclomaticComplexity: 24
      functionsReached:
        - PathGetSharedLibraryExtensionA
        - calloc
        - freerdp_load_dynamic_addin
        - snprintf
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/addin.c:265,13'
          Dst:             strnlen
        - Src:             'libfreerdp/common/addin.c:267,18'
          Dst:             strnlen
        - Src:             'libfreerdp/common/addin.c:269,13'
          Dst:             strnlen
        - Src:             'libfreerdp/common/addin.c:279,9'
          Dst:             snprintf
        - Src:             'libfreerdp/common/addin.c:290,9'
          Dst:             snprintf
        - Src:             'libfreerdp/common/addin.c:300,9'
          Dst:             snprintf
        - Src:             'libfreerdp/common/addin.c:308,25'
          Dst:             PathGetSharedLibraryExtensionA
        - Src:             'libfreerdp/common/addin.c:312,18'
          Dst:             strnlen
        - Src:             'libfreerdp/common/addin.c:314,19'
          Dst:             strnlen
        - Src:             'libfreerdp/common/addin.c:315,15'
          Dst:             calloc
        - Src:             'libfreerdp/common/addin.c:317,9'
          Dst:             snprintf
        - Src:             'libfreerdp/common/addin.c:342,9'
          Dst:             snprintf
        - Src:             'libfreerdp/common/addin.c:344,11'
          Dst:             freerdp_load_dynamic_addin
        - Src:             'libfreerdp/common/addin.c:355,12'
          Dst:             freerdp_load_dynamic_addin
        - Src:             'libfreerdp/common/addin.c:357,12'
          Dst:             freerdp_load_dynamic_addin
        - Src:             'libfreerdp/common/addin.c:360,11'
          Dst:             freerdp_load_dynamic_addin
        - Src:             'libfreerdp/common/addin.c:362,11'
          Dst:             freerdp_load_dynamic_addin
        - Src:             'libfreerdp/common/addin.c:364,11'
          Dst:             freerdp_load_dynamic_addin
    - 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:    freerdp_load_dynamic_addin
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/addin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          299
      EdgeCount:       58
      CyclomaticComplexity: 18
      functionsReached:
        - FreeLibrary
        - GetProcAddress
        - LoadLibraryX
        - NativePathCchAppendA
        - PathCchFindExtensionA
        - PathGetSharedLibraryExtensionA
        - WLog_Print_dbg_tag
        - _strdup
        - calloc
        - freerdp_get_dynamic_addin_install_path
        - snprintf
        - strlen
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/addin.c:145,30'
          Dst:             freerdp_get_dynamic_addin_install_path
        - Src:             'libfreerdp/common/addin.c:162,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/addin.c:165,16'
          Dst:             strlen
        - Src:             'libfreerdp/common/addin.c:168,6'
          Dst:             PathCchFindExtensionA
        - Src:             'libfreerdp/common/addin.c:170,12'
          Dst:             PathGetSharedLibraryExtensionA
        - Src:             'libfreerdp/common/addin.c:171,12'
          Dst:             strlen
        - Src:             'libfreerdp/common/addin.c:177,18'
          Dst:             _strdup
        - Src:             'libfreerdp/common/addin.c:190,9'
          Dst:             snprintf
        - Src:             'libfreerdp/common/addin.c:194,17'
          Dst:             strlen
        - Src:             'libfreerdp/common/addin.c:199,23'
          Dst:             strlen
        - Src:             'libfreerdp/common/addin.c:200,25'
          Dst:             calloc
        - Src:             'libfreerdp/common/addin.c:205,9'
          Dst:             snprintf
        - Src:             'libfreerdp/common/addin.c:206,22'
          Dst:             NativePathCchAppendA
        - Src:             'libfreerdp/common/addin.c:211,25'
          Dst:             _strdup
        - Src:             'libfreerdp/common/addin.c:219,25'
          Dst:             strlen
        - Src:             'libfreerdp/common/addin.c:228,22'
          Dst:             NativePathCchAppendA
        - Src:             'libfreerdp/common/addin.c:233,17'
          Dst:             _strdup
        - Src:             'libfreerdp/common/addin.c:235,12'
          Dst:             LoadLibraryX
        - Src:             'libfreerdp/common/addin.c:240,10'
          Dst:             GetProcAddress
        - Src:             'libfreerdp/common/addin.c:248,3'
          Dst:             FreeLibrary
    - functionName:    freerdp_get_dynamic_addin_install_path
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/addin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         19
      ICount:          137
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - NativePathCchAppendA
        - WLog_Print_dbg_tag
        - calloc
        - is_path_required
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/addin.c:103,17'
          Dst:             strlen
        - Src:             'libfreerdp/common/addin.c:104,21'
          Dst:             strlen
        - Src:             'libfreerdp/common/addin.c:106,20'
          Dst:             is_path_required
        - Src:             'libfreerdp/common/addin.c:107,16'
          Dst:             is_path_required
        - Src:             'libfreerdp/common/addin.c:109,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/common/addin.c:116,19'
          Dst:             calloc
        - Src:             'libfreerdp/common/addin.c:129,7'
          Dst:             NativePathCchAppendA
        - Src:             'libfreerdp/common/addin.c:136,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    is_path_required
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/addin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          49
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/addin.c:42,6'
          Dst:             strcmp
    - functionName:    freerdp_get_current_addin_provider
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/addin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_register_addin_provider
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/addin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_get_library_install_path
      functionSourceFile: '/src/FreeRDP/libfreerdp/common/addin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         19
      ICount:          132
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - NativePathCchAppendA
        - is_path_required
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/common/addin.c:58,19'
          Dst:             strlen
        - Src:             'libfreerdp/common/addin.c:59,21'
          Dst:             strlen
        - Src:             'libfreerdp/common/addin.c:61,20'
          Dst:             is_path_required
        - Src:             'libfreerdp/common/addin.c:62,16'
          Dst:             is_path_required
        - Src:             'libfreerdp/common/addin.c:80,7'
          Dst:             NativePathCchAppendA
    - functionName:    copy_cache_brush_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/brush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          65
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - free_cache_brush_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/brush.c:310,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:312,8'
          Dst:             calloc
        - Src:             'libfreerdp/cache/brush.c:320,2'
          Dst:             free_cache_brush_order
    - functionName:    free_cache_brush_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/brush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    brush_cache_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/brush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          111
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    brush_cache_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/brush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          93
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - brush_cache_free
        - calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/brush.c:247,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:249,31'
          Dst:             calloc
        - Src:             'libfreerdp/cache/brush.c:257,38'
          Dst:             calloc
        - Src:             'libfreerdp/cache/brush.c:262,42'
          Dst:             calloc
        - Src:             'libfreerdp/cache/brush.c:271,2'
          Dst:             brush_cache_free
    - functionName:    update_gdi_cache_brush
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/brush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          104
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - brush_cache_put
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/brush.c:127,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:128,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:131,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:140,2'
          Dst:             brush_cache_put
    - functionName:    brush_cache_put
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/brush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          157
      EdgeCount:       31
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/brush.c:188,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:194,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/brush.c:199,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:208,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/brush.c:213,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:    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:    update_gdi_polygon_cb
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/brush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          165
      EdgeCount:       43
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - brush_cache_get
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/brush.c:99,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:100,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:106,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:111,17'
          Dst:             brush_cache_get
        - Src:             'libfreerdp/cache/brush.c:115,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:116,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    brush_cache_get
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/brush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          138
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/brush.c:158,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/brush.c:169,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/brush.c:179,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_gdi_polygon_sc
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/brush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          104
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/brush.c:88,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:90,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:91,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:92,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_gdi_patblt
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/brush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          165
      EdgeCount:       43
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - brush_cache_get
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/brush.c:63,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:64,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:67,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:70,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:75,17'
          Dst:             brush_cache_get
        - Src:             'libfreerdp/cache/brush.c:79,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:80,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    brush_cache_register_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/brush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          167
      EdgeCount:       43
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_get_bool
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/brush.c:222,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:223,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:224,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:225,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:227,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/cache/brush.c:230,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/brush.c:231,3'
          Dst:             winpr_int_assert
    - functionName:    pointer_cache_get
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          76
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:272,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:276,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/pointer.c:281,2'
          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:    15
      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:    pointer_clear
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pointer_cache_put
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          152
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_uint32
        - pointer_free
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:293,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:294,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:296,22'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/cache/pointer.c:299,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/pointer.c:307,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/pointer.c:314,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:316,2'
          Dst:             pointer_free
    - functionName:    pointer_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - pointer_clear
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:57,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/pointer.c:58,3'
          Dst:             pointer_clear
    - functionName:    update_pointer_copy_andxor
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          147
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - pointer_clear
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:108,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:110,2'
          Dst:             pointer_clear
    - functionName:    copy_pointer_system_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - free_pointer_system_update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:587,31'
          Dst:             calloc
        - Src:             'libfreerdp/cache/pointer.c:595,2'
          Dst:             free_pointer_system_update
    - functionName:    free_pointer_system_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_pointer_position_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 565
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - free_pointer_position_update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:566,33'
          Dst:             calloc
        - Src:             'libfreerdp/cache/pointer.c:574,2'
          Dst:             free_pointer_position_update
    - functionName:    free_pointer_position_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 558
      functionLinenumberEnd: 561
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    free_pointer_cached_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 552
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_pointer_cached_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
        - free_pointer_cached_update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:539,31'
          Dst:             calloc
        - Src:             'libfreerdp/cache/pointer.c:547,2'
          Dst:             free_pointer_cached_update
    - functionName:    free_pointer_new_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_pointer_new_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 490
      functionLinenumberEnd: 524
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          146
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - calloc
        - free_pointer_new_update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:491,28'
          Dst:             calloc
        - Src:             'libfreerdp/cache/pointer.c:500,35'
          Dst:             calloc
        - Src:             'libfreerdp/cache/pointer.c:511,35'
          Dst:             calloc
        - Src:             'libfreerdp/cache/pointer.c:522,2'
          Dst:             free_pointer_new_update
    - functionName:    free_pointer_large_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_pointer_large_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          130
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - calloc
        - free_pointer_large_update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:445,30'
          Dst:             calloc
        - Src:             'libfreerdp/cache/pointer.c:454,22'
          Dst:             calloc
        - Src:             'libfreerdp/cache/pointer.c:464,22'
          Dst:             calloc
        - Src:             'libfreerdp/cache/pointer.c:474,2'
          Dst:             free_pointer_large_update
    - functionName:    free_pointer_color_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 440
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_pointer_color_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          132
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - calloc
        - free_pointer_color_update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:397,30'
          Dst:             calloc
        - Src:             'libfreerdp/cache/pointer.c:406,22'
          Dst:             calloc
        - Src:             'libfreerdp/cache/pointer.c:416,22'
          Dst:             calloc
        - Src:             'libfreerdp/cache/pointer.c:426,2'
          Dst:             free_pointer_color_update
    - functionName:    pointer_cache_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          72
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - pointer_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:385,5'
          Dst:             pointer_free
    - functionName:    pointer_cache_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          115
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:347,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:350,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:352,36'
          Dst:             calloc
        - Src:             'libfreerdp/cache/pointer.c:361,22'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/cache/pointer.c:362,27'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/cache/pointer.c:365,41'
          Dst:             calloc
    - functionName:    update_pointer_cached
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          118
      EdgeCount:       33
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - pointer_cache_get
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:254,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:255,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:258,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:260,12'
          Dst:             pointer_cache_get
        - Src:             'libfreerdp/cache/pointer.c:263,10'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_pointer_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          224
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - Pointer_Alloc
        - WLog_Print_dbg_tag
        - pointer_cache_put
        - pointer_free
        - update_pointer_copy_andxor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:221,24'
          Dst:             Pointer_Alloc
        - Src:             'libfreerdp/cache/pointer.c:231,7'
          Dst:             update_pointer_copy_andxor
        - Src:             'libfreerdp/cache/pointer.c:236,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/pointer.c:239,7'
          Dst:             pointer_cache_put
        - Src:             'libfreerdp/cache/pointer.c:242,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/pointer.c:245,2'
          Dst:             pointer_free
    - functionName:    update_pointer_large
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          238
      EdgeCount:       51
      CyclomaticComplexity: 10
      functionsReached:
        - Pointer_Alloc
        - WLog_Print_dbg_tag
        - pointer_cache_put
        - pointer_free
        - update_pointer_copy_andxor
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:182,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:183,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:186,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:188,12'
          Dst:             Pointer_Alloc
        - Src:             'libfreerdp/cache/pointer.c:197,7'
          Dst:             update_pointer_copy_andxor
        - Src:             'libfreerdp/cache/pointer.c:202,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/pointer.c:205,7'
          Dst:             pointer_cache_put
        - Src:             'libfreerdp/cache/pointer.c:208,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/pointer.c:211,2'
          Dst:             pointer_free
    - functionName:    update_pointer_color
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          234
      EdgeCount:       51
      CyclomaticComplexity: 10
      functionsReached:
        - Pointer_Alloc
        - WLog_Print_dbg_tag
        - pointer_cache_put
        - pointer_free
        - update_pointer_copy_andxor
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:143,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:144,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:147,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:149,12'
          Dst:             Pointer_Alloc
        - Src:             'libfreerdp/cache/pointer.c:159,7'
          Dst:             update_pointer_copy_andxor
        - Src:             'libfreerdp/cache/pointer.c:164,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/pointer.c:167,7'
          Dst:             pointer_cache_put
        - Src:             'libfreerdp/cache/pointer.c:170,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/pointer.c:173,2'
          Dst:             pointer_free
    - functionName:    update_pointer_system
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          157
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/cache/pointer.c:90,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:93,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/pointer.c:96,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/pointer.c:99,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_pointer_position
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          133
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:70,25'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/cache/pointer.c:75,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:77,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    pointer_cache_register_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/pointer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          92
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_get_bool
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/pointer.c:325,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:326,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:329,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/pointer.c:331,7'
          Dst:             freerdp_settings_get_bool
    - functionName:    bitmap_cache_put
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:250,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:253,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/bitmap.c:263,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:    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:    bitmap_cache_get
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          92
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:230,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/bitmap.c:240,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    free_cache_bitmap_v3_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 636
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_cache_bitmap_v3_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 608
      functionLinenumberEnd: 633
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          95
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - free_cache_bitmap_v3_order
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:609,31'
          Dst:             calloc
        - Src:             'libfreerdp/cache/bitmap.c:630,2'
          Dst:             free_cache_bitmap_v3_order
    - functionName:    free_cache_bitmap_v2_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 599
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_cache_bitmap_v2_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 570
      functionLinenumberEnd: 595
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - free_cache_bitmap_v2_order
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:571,31'
          Dst:             calloc
        - Src:             'libfreerdp/cache/bitmap.c:592,2'
          Dst:             free_cache_bitmap_v2_order
    - functionName:    free_cache_bitmap_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 561
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_cache_bitmap_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 533
      functionLinenumberEnd: 558
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - free_cache_bitmap_order
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:534,28'
          Dst:             calloc
        - Src:             'libfreerdp/cache/bitmap.c:555,2'
          Dst:             free_cache_bitmap_order
    - functionName:    copy_bitmap_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          118
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - free_bitmap_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:474,35'
          Dst:             calloc
        - Src:             'libfreerdp/cache/bitmap.c:496,2'
          Dst:             free_bitmap_data
    - functionName:    free_bitmap_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          50
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_bitmap_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - copy_bitmap_data
        - free_bitmap_update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:512,23'
          Dst:             calloc
        - Src:             'libfreerdp/cache/bitmap.c:518,20'
          Dst:             copy_bitmap_data
        - Src:             'libfreerdp/cache/bitmap.c:527,2'
          Dst:             free_bitmap_update
    - functionName:    free_bitmap_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - free_bitmap_data
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:506,2'
          Dst:             free_bitmap_data
    - functionName:    bitmap_cache_save_persistent
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         80
      ICount:          395
      EdgeCount:       99
      CyclomaticComplexity: 21
      functionsReached:
        - freerdp_settings_get_bool
        - freerdp_settings_get_string
        - freerdp_settings_get_uint32
        - persistent_cache_free
        - persistent_cache_new
        - persistent_cache_open
        - persistent_cache_write_entry
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:300,25'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/cache/bitmap.c:305,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/cache/bitmap.c:309,6'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/cache/bitmap.c:313,35'
          Dst:             persistent_cache_new
        - Src:             'libfreerdp/cache/bitmap.c:318,15'
          Dst:             persistent_cache_open
        - Src:             'libfreerdp/cache/bitmap.c:338,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:338,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:339,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:339,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:347,9'
          Dst:             persistent_cache_write_entry
        - Src:             'libfreerdp/cache/bitmap.c:359,2'
          Dst:             persistent_cache_free
    - functionName:    bitmap_cache_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          119
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - Bitmap_Free
        - bitmap_cache_save_persistent
        - persistent_cache_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:431,2'
          Dst:             bitmap_cache_save_persistent
        - Src:             'libfreerdp/cache/bitmap.c:447,5'
          Dst:             Bitmap_Free
        - Src:             'libfreerdp/cache/bitmap.c:456,2'
          Dst:             persistent_cache_free
    - functionName:    bitmap_cache_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 424
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          178
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - bitmap_cache_free
        - calloc
        - freerdp_settings_get_pointer_array
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:368,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:371,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:373,33'
          Dst:             calloc
        - Src:             'libfreerdp/cache/bitmap.c:379,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/cache/bitmap.c:384,23'
          Dst:             calloc
        - Src:             'libfreerdp/cache/bitmap.c:393,7'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/cache/bitmap.c:397,32'
          Dst:             calloc
        - Src:             'libfreerdp/cache/bitmap.c:410,33'
          Dst:             calloc
        - Src:             'libfreerdp/cache/bitmap.c:421,2'
          Dst:             bitmap_cache_free
    - functionName:    update_gdi_cache_bitmap_v3
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         60
      ICount:          342
      EdgeCount:       72
      CyclomaticComplexity: 14
      functionsReached:
        - Bitmap_Alloc
        - Bitmap_Free
        - Bitmap_SetDimensions
        - bitmap_cache_get
        - bitmap_cache_put
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:188,11'
          Dst:             Bitmap_Alloc
        - Src:             'libfreerdp/cache/bitmap.c:193,28'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/cache/bitmap.c:201,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:201,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:202,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:202,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:201,7'
          Dst:             Bitmap_SetDimensions
        - Src:             'libfreerdp/cache/bitmap.c:213,15'
          Dst:             bitmap_cache_get
        - Src:             'libfreerdp/cache/bitmap.c:214,2'
          Dst:             Bitmap_Free
        - Src:             'libfreerdp/cache/bitmap.c:215,7'
          Dst:             bitmap_cache_put
        - Src:             'libfreerdp/cache/bitmap.c:220,2'
          Dst:             Bitmap_Free
    - functionName:    update_gdi_cache_bitmap_v2
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         65
      ICount:          353
      EdgeCount:       79
      CyclomaticComplexity: 16
      functionsReached:
        - Bitmap_Alloc
        - Bitmap_Free
        - Bitmap_SetDimensions
        - bitmap_cache_get
        - bitmap_cache_put
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:141,22'
          Dst:             Bitmap_Alloc
        - Src:             'libfreerdp/cache/bitmap.c:146,28'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/cache/bitmap.c:155,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:155,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:156,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:156,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:155,7'
          Dst:             Bitmap_SetDimensions
        - Src:             'libfreerdp/cache/bitmap.c:165,15'
          Dst:             bitmap_cache_get
        - Src:             'libfreerdp/cache/bitmap.c:170,2'
          Dst:             Bitmap_Free
        - Src:             'libfreerdp/cache/bitmap.c:171,7'
          Dst:             bitmap_cache_put
        - Src:             'libfreerdp/cache/bitmap.c:176,2'
          Dst:             Bitmap_Free
    - functionName:    update_gdi_cache_bitmap
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         57
      ICount:          288
      EdgeCount:       68
      CyclomaticComplexity: 13
      functionsReached:
        - Bitmap_Alloc
        - Bitmap_Free
        - Bitmap_SetDimensions
        - bitmap_cache_get
        - bitmap_cache_put
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:106,11'
          Dst:             Bitmap_Alloc
        - Src:             'libfreerdp/cache/bitmap.c:111,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:111,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:112,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:112,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:111,7'
          Dst:             Bitmap_SetDimensions
        - Src:             'libfreerdp/cache/bitmap.c:124,15'
          Dst:             bitmap_cache_get
        - Src:             'libfreerdp/cache/bitmap.c:125,2'
          Dst:             Bitmap_Free
        - Src:             'libfreerdp/cache/bitmap.c:126,7'
          Dst:             bitmap_cache_put
        - Src:             'libfreerdp/cache/bitmap.c:131,2'
          Dst:             Bitmap_Free
    - functionName:    update_gdi_mem3blt
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          235
      EdgeCount:       48
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Print_dbg_tag
        - bitmap_cache_get
        - brush_cache_get
        - offscreen_cache_get
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:75,12'
          Dst:             offscreen_cache_get
        - Src:             'libfreerdp/cache/bitmap.c:77,12'
          Dst:             bitmap_cache_get
        - Src:             'libfreerdp/cache/bitmap.c:83,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:83,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:87,17'
          Dst:             brush_cache_get
        - Src:             'libfreerdp/cache/bitmap.c:96,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_gdi_memblt
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          119
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - bitmap_cache_get
        - offscreen_cache_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:55,12'
          Dst:             offscreen_cache_get
        - Src:             'libfreerdp/cache/bitmap.c:57,12'
          Dst:             bitmap_cache_get
        - Src:             'libfreerdp/cache/bitmap.c:64,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    bitmap_cache_register_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          140
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_get_bool
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/bitmap.c:275,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:276,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:277,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/bitmap.c:282,7'
          Dst:             freerdp_settings_get_bool
    - 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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:498,9'
          Dst:             fseeko64
    - functionName:    persistent_cache_read_v2
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          58
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - fread
        - fseek
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/persistent.c:119,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:124,7'
          Dst:             fread
        - Src:             'libfreerdp/cache/persistent.c:127,7'
          Dst:             fseek
    - 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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    persistent_cache_read_v3
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          66
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - _fseeki64
        - fread
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/persistent.c:201,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:206,7'
          Dst:             fread
        - Src:             'libfreerdp/cache/persistent.c:209,7'
          Dst:             _fseeki64
    - functionName:    persistent_cache_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - persistent_cache_close
        - winpr_aligned_free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/persistent.c:370,2'
          Dst:             persistent_cache_close
        - Src:             'libfreerdp/cache/persistent.c:374,2'
          Dst:             winpr_aligned_free
    - functionName:    persistent_cache_close
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          45
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - fclose
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/persistent.c:336,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:339,9'
          Dst:             fclose
    - functionName:    persistent_cache_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - winpr_aligned_calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/persistent.c:348,35'
          Dst:             calloc
        - Src:             'libfreerdp/cache/persistent.c:354,24'
          Dst:             winpr_aligned_calloc
    - functionName:    persistent_cache_open_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          129
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - fread
        - fseek
        - memcmp
        - persistent_cache_read_v2
        - persistent_cache_read_v3
        - winpr_fopen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/persistent.c:251,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:252,19'
          Dst:             winpr_fopen
        - Src:             'libfreerdp/cache/persistent.c:257,6'
          Dst:             fread
        - Src:             'libfreerdp/cache/persistent.c:260,6'
          Dst:             memcmp
        - Src:             'libfreerdp/cache/persistent.c:265,8'
          Dst:             fseek
        - Src:             'libfreerdp/cache/persistent.c:271,7'
          Dst:             fread
        - Src:             'libfreerdp/cache/persistent.c:274,12'
          Dst:             persistent_cache_read_v3
        - Src:             'libfreerdp/cache/persistent.c:279,12'
          Dst:             persistent_cache_read_v2
        - Src:             'libfreerdp/cache/persistent.c:283,8'
          Dst:             fseek
    - functionName:    persistent_cache_open_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          86
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - fwrite
        - winpr_fopen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/persistent.c:290,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:292,19'
          Dst:             winpr_fopen
        - Src:             'libfreerdp/cache/persistent.c:303,7'
          Dst:             fwrite
    - functionName:    persistent_cache_open
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          101
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - _strdup
        - persistent_cache_open_read
        - persistent_cache_open_write
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/persistent.c:315,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:316,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:319,25'
          Dst:             _strdup
        - Src:             'libfreerdp/cache/persistent.c:326,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:328,10'
          Dst:             persistent_cache_open_write
        - Src:             'libfreerdp/cache/persistent.c:331,9'
          Dst:             persistent_cache_open_read
    - functionName:    persistent_cache_write_entry_v2
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          158
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - fwrite
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/persistent.c:87,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:88,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:98,6'
          Dst:             fwrite
        - Src:             'libfreerdp/cache/persistent.c:101,6'
          Dst:             fwrite
        - Src:             'libfreerdp/cache/persistent.c:108,7'
          Dst:             fwrite
    - functionName:    persistent_cache_write_entry_v3
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          99
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - fwrite
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/persistent.c:181,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:182,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:188,6'
          Dst:             fwrite
        - Src:             'libfreerdp/cache/persistent.c:191,6'
          Dst:             fwrite
    - functionName:    persistent_cache_write_entry
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          75
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - persistent_cache_write_entry_v2
        - persistent_cache_write_entry_v3
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/persistent.c:234,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:235,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:238,10'
          Dst:             persistent_cache_write_entry_v3
        - Src:             'libfreerdp/cache/persistent.c:240,10'
          Dst:             persistent_cache_write_entry_v2
    - functionName:    persistent_cache_read_entry_v2
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          112
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - fread
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/persistent.c:62,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:63,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:65,6'
          Dst:             fread
        - Src:             'libfreerdp/cache/persistent.c:76,6'
          Dst:             fread
    - functionName:    persistent_cache_read_entry_v3
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          237
      EdgeCount:       56
      CyclomaticComplexity: 10
      functionsReached:
        - fread
        - winpr_aligned_recalloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/persistent.c:141,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:142,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:144,6'
          Dst:             fread
        - Src:             'libfreerdp/cache/persistent.c:158,26'
          Dst:             winpr_aligned_recalloc
        - Src:             'libfreerdp/cache/persistent.c:166,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:166,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:170,6'
          Dst:             fread
    - functionName:    persistent_cache_read_entry
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          75
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - persistent_cache_read_entry_v2
        - persistent_cache_read_entry_v3
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/persistent.c:220,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:221,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/persistent.c:224,10'
          Dst:             persistent_cache_read_entry_v3
        - Src:             'libfreerdp/cache/persistent.c:226,10'
          Dst:             persistent_cache_read_entry_v2
    - functionName:    persistent_cache_get_count
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/persistent.c:53,2'
          Dst:             winpr_int_assert
    - functionName:    persistent_cache_get_version
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/persistent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 48
      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:             'libfreerdp/cache/persistent.c:47,2'
          Dst:             winpr_int_assert
    - functionName:    offscreen_cache_put
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/offscreen.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          57
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - offscreen_cache_delete
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/offscreen.c:151,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/offscreen.c:155,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/offscreen.c:159,2'
          Dst:             offscreen_cache_delete
    - 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:    offscreen_cache_delete
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/offscreen.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          115
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - Bitmap_Free
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/offscreen.c:165,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/offscreen.c:169,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/offscreen.c:177,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/offscreen.c:183,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/offscreen.c:186,3'
          Dst:             Bitmap_Free
    - functionName:    offscreen_cache_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/offscreen.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          72
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - Bitmap_Free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/offscreen.c:248,5'
          Dst:             Bitmap_Free
    - functionName:    offscreen_cache_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/offscreen.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          121
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - freerdp_settings_set_uint32
        - offscreen_cache_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/offscreen.c:206,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/offscreen.c:209,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/offscreen.c:211,39'
          Dst:             calloc
        - Src:             'libfreerdp/cache/offscreen.c:220,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/cache/offscreen.c:222,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/cache/offscreen.c:225,41'
          Dst:             calloc
        - Src:             'libfreerdp/cache/offscreen.c:234,2'
          Dst:             offscreen_cache_free
    - functionName:    update_gdi_switch_surface
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/offscreen.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          144
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - offscreen_cache_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/offscreen.c:114,9'
          Dst:             offscreen_cache_get
    - functionName:    offscreen_cache_get
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/offscreen.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          69
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/offscreen.c:130,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/offscreen.c:134,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/offscreen.c:142,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_gdi_create_offscreen_bitmap
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/offscreen.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         68
      ICount:          333
      EdgeCount:       83
      CyclomaticComplexity: 17
      functionsReached:
        - Bitmap_Alloc
        - Bitmap_Free
        - Bitmap_SetDimensions
        - offscreen_cache_delete
        - offscreen_cache_put
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/offscreen.c:59,22'
          Dst:             Bitmap_Alloc
        - Src:             'libfreerdp/cache/offscreen.c:64,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/offscreen.c:64,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/offscreen.c:65,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/offscreen.c:65,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/offscreen.c:64,7'
          Dst:             Bitmap_SetDimensions
        - Src:             'libfreerdp/cache/offscreen.c:67,3'
          Dst:             Bitmap_Free
        - Src:             'libfreerdp/cache/offscreen.c:73,3'
          Dst:             Bitmap_Free
        - Src:             'libfreerdp/cache/offscreen.c:77,2'
          Dst:             offscreen_cache_delete
        - Src:             'libfreerdp/cache/offscreen.c:78,2'
          Dst:             offscreen_cache_put
        - Src:             'libfreerdp/cache/offscreen.c:89,3'
          Dst:             offscreen_cache_delete
    - functionName:    offscreen_cache_register_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/offscreen.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          52
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/offscreen.c:194,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/offscreen.c:195,2'
          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:    palette_cache_put
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/palette.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/palette.c:54,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    copy_palette_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/palette.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - free_palette_update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/palette.c:108,24'
          Dst:             calloc
        - Src:             'libfreerdp/cache/palette.c:118,2'
          Dst:             free_palette_update
    - functionName:    free_palette_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/palette.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    palette_cache_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/palette.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    palette_cache_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/palette.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/palette.c:74,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/palette.c:76,35'
          Dst:             calloc
        - Src:             'libfreerdp/cache/palette.c:83,29'
          Dst:             calloc
    - functionName:    update_gdi_cache_color_table
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/palette.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - palette_cache_put
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/palette.c:46,2'
          Dst:             palette_cache_put
    - functionName:    palette_cache_register_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/palette.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          47
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/palette.c:65,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/palette.c:66,2'
          Dst:             winpr_int_assert
    - functionName:    glyph_cache_put
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 592
      functionLinenumberEnd: 620
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          146
      EdgeCount:       34
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:593,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:597,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/glyph.c:604,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/glyph.c:608,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/cache/glyph.c:608,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/cache/glyph.c:614,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:    11
      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:    glyph_cache_get
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          116
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:565,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:567,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/cache/glyph.c:567,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/cache/glyph.c:572,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/glyph.c:579,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/glyph.c:585,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    glyph_cache_fragment_put
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          146
      EdgeCount:       33
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:649,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:650,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:654,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/glyph.c:666,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/cache/glyph.c:666,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    update_process_glyph
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         111
      ICount:          573
      EdgeCount:       138
      CyclomaticComplexity: 29
      functionsReached:
        - glyph_cache_get
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:94,20'
          Dst:             glyph_cache_get
        - Src:             'libfreerdp/cache/glyph.c:116,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:116,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:117,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:117,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:133,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:133,9'
          Dst:             winpr_int_assert
    - functionName:    update_glyph_offset
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          290
      EdgeCount:       78
      CyclomaticComplexity: 15
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:52,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/glyph.c:68,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/glyph.c:73,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:73,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:76,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:76,10'
          Dst:             winpr_int_assert
    - functionName:    glyph_cache_fragment_get
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 623
      functionLinenumberEnd: 644
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          122
      EdgeCount:       31
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:626,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:627,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:631,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/glyph.c:637,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/cache/glyph.c:637,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/cache/glyph.c:641,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_process_glyph_fragments
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      int
      argCount:        19
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         226
      ICount:          1044
      EdgeCount:       272
      CyclomaticComplexity: 48
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_uint32
        - glyph_cache_fragment_get
        - glyph_cache_fragment_put
        - update_glyph_offset
        - update_process_glyph
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/cache/glyph.c:251,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:156,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:158,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:160,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:206,21'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/cache/glyph.c:218,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:218,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:232,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:232,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:236,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:236,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:237,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:237,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:238,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:238,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:239,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:239,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:244,8'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/cache/glyph.c:258,31'
          Dst:             glyph_cache_fragment_get
        - Src:             'libfreerdp/cache/glyph.c:266,11'
          Dst:             update_glyph_offset
        - Src:             'libfreerdp/cache/glyph.c:268,12'
          Dst:             update_process_glyph
        - Src:             'libfreerdp/cache/glyph.c:283,6'
          Dst:             glyph_cache_fragment_put
        - Src:             'libfreerdp/cache/glyph.c:287,14'
          Dst:             update_glyph_offset
        - Src:             'libfreerdp/cache/glyph.c:289,11'
          Dst:             update_process_glyph
    - functionName:    free_cache_glyph_v2_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 885
      functionLinenumberEnd: 895
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_cache_glyph_v2_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 836
      functionLinenumberEnd: 882
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          183
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
        - free_cache_glyph_v2_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:839,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:841,8'
          Dst:             calloc
        - Src:             'libfreerdp/cache/glyph.c:870,28'
          Dst:             calloc
        - Src:             'libfreerdp/cache/glyph.c:880,2'
          Dst:             free_cache_glyph_v2_order
    - functionName:    free_cache_glyph_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 822
      functionLinenumberEnd: 832
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_cache_glyph_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 773
      functionLinenumberEnd: 819
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          183
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
        - free_cache_glyph_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:776,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:778,8'
          Dst:             calloc
        - Src:             'libfreerdp/cache/glyph.c:807,28'
          Dst:             calloc
        - Src:             'libfreerdp/cache/glyph.c:817,2'
          Dst:             free_cache_glyph_order
    - functionName:    glyph_cache_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 735
      functionLinenumberEnd: 770
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          149
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    glyph_cache_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 695
      functionLinenumberEnd: 732
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          132
      EdgeCount:       28
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Get
        - calloc
        - freerdp_settings_get_pointer_array
        - glyph_cache_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:699,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:702,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:704,31'
          Dst:             calloc
        - Src:             'libfreerdp/cache/glyph.c:709,20'
          Dst:             WLog_Get
        - Src:             'libfreerdp/cache/glyph.c:715,7'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/cache/glyph.c:719,39'
          Dst:             calloc
        - Src:             'libfreerdp/cache/glyph.c:729,2'
          Dst:             glyph_cache_free
    - functionName:    update_gdi_cache_glyph_v2
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 561
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          134
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - Glyph_Alloc
        - glyph_cache_put
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:547,21'
          Dst:             Glyph_Alloc
        - Src:             'libfreerdp/cache/glyph.c:553,8'
          Dst:             glyph_cache_put
    - functionName:    update_gdi_cache_glyph
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          136
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - Glyph_Alloc
        - glyph_cache_put
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:522,21'
          Dst:             Glyph_Alloc
        - Src:             'libfreerdp/cache/glyph.c:527,8'
          Dst:             glyph_cache_put
    - functionName:    update_gdi_fast_glyph
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         62
      ICount:          485
      EdgeCount:       83
      CyclomaticComplexity: 23
      functionsReached:
        - Glyph_Alloc
        - freerdp_settings_get_uint32
        - glyph_cache_put
        - update_process_glyph_fragments
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:463,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/cache/glyph.c:464,18'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/cache/glyph.c:478,11'
          Dst:             Glyph_Alloc
        - Src:             'libfreerdp/cache/glyph.c:484,8'
          Dst:             glyph_cache_put
        - Src:             'libfreerdp/cache/glyph.c:506,9'
          Dst:             update_process_glyph_fragments
    - functionName:    update_gdi_fast_index
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         56
      ICount:          395
      EdgeCount:       74
      CyclomaticComplexity: 20
      functionsReached:
        - freerdp_settings_get_uint32
        - update_process_glyph_fragments
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:381,23'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/cache/glyph.c:382,18'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/cache/glyph.c:402,7'
          Dst:             update_process_glyph_fragments
    - functionName:    update_gdi_glyph_index
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          273
      EdgeCount:       54
      CyclomaticComplexity: 12
      functionsReached:
        - update_process_glyph_fragments
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:334,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:334,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:329,9'
          Dst:             update_process_glyph_fragments
    - functionName:    glyph_cache_register_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/glyph.c'
      linkageType:     InternalLinkage
      functionLinenumber: 678
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          109
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_get_bool
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/glyph.c:679,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:680,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:681,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:682,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/glyph.c:684,7'
          Dst:             freerdp_settings_get_bool
    - functionName:    free_surface_bits_command
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_surface_bits_command
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - free_surface_bits_command
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/cache.c:125,30'
          Dst:             calloc
        - Src:             'libfreerdp/cache/cache.c:143,2'
          Dst:             free_surface_bits_command
    - functionName:    free_cache_color_table_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_cache_color_table_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - free_cache_color_table_order
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/cache.c:101,33'
          Dst:             calloc
        - Src:             'libfreerdp/cache/cache.c:111,2'
          Dst:             free_cache_color_table_order
    - functionName:    cache_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bitmap_cache_free
        - brush_cache_free
        - glyph_cache_free
        - nine_grid_cache_free
        - offscreen_cache_free
        - palette_cache_free
        - pointer_cache_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/cache.c:87,3'
          Dst:             glyph_cache_free
        - Src:             'libfreerdp/cache/cache.c:88,3'
          Dst:             brush_cache_free
        - Src:             'libfreerdp/cache/cache.c:89,3'
          Dst:             pointer_cache_free
        - Src:             'libfreerdp/cache/cache.c:90,3'
          Dst:             bitmap_cache_free
        - Src:             'libfreerdp/cache/cache.c:91,3'
          Dst:             offscreen_cache_free
        - Src:             'libfreerdp/cache/cache.c:92,3'
          Dst:             palette_cache_free
        - Src:             'libfreerdp/cache/cache.c:93,3'
          Dst:             nine_grid_cache_free
    - functionName:    cache_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          147
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - bitmap_cache_new
        - brush_cache_new
        - cache_free
        - calloc
        - glyph_cache_new
        - nine_grid_cache_new
        - offscreen_cache_new
        - palette_cache_new
        - pointer_cache_new
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/cache.c:32,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/cache.c:34,21'
          Dst:             calloc
        - Src:             'libfreerdp/cache/cache.c:39,17'
          Dst:             glyph_cache_new
        - Src:             'libfreerdp/cache/cache.c:44,17'
          Dst:             brush_cache_new
        - Src:             'libfreerdp/cache/cache.c:49,19'
          Dst:             pointer_cache_new
        - Src:             'libfreerdp/cache/cache.c:54,18'
          Dst:             bitmap_cache_new
        - Src:             'libfreerdp/cache/cache.c:59,21'
          Dst:             offscreen_cache_new
        - Src:             'libfreerdp/cache/cache.c:64,19'
          Dst:             palette_cache_new
        - Src:             'libfreerdp/cache/cache.c:69,21'
          Dst:             nine_grid_cache_new
        - Src:             'libfreerdp/cache/cache.c:78,2'
          Dst:             cache_free
    - 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_Get_UINT32_BE
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:128,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Write_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      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_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:    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:    ber_read_integer_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 751
      functionLinenumberEnd: 752
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ber_read_length
        - ber_read_universal_tag
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:752,9'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:752,62'
          Dst:             ber_read_length
    - functionName:    ber_read_universal_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          83
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - stream_read_u8
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:127,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:129,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:132,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:136,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ber_read_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          132
      EdgeCount:       38
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Get_UINT8
        - WLog_Print_dbg_tag
        - stream_read_u16_be
        - stream_read_u8
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:35,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:36,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:39,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:42,14'
          Dst:             Stream_Get_UINT8
        - Src:             'libfreerdp/crypto/ber.c:48,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:52,4'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:54,4'
          Dst:             stream_read_u16_be
        - Src:             'libfreerdp/crypto/ber.c:57,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    Stream_Get_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:347,10'
          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:    13
      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_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:    3
      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:    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:    13
      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:    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:    ber_sizeof_contextual_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 745
      functionLinenumberEnd: 747
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ber_sizeof_contextual_tag
        - ber_sizeof_integer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:746,19'
          Dst:             ber_sizeof_integer
        - Src:             'libfreerdp/crypto/ber.c:747,9'
          Dst:             ber_sizeof_contextual_tag
    - functionName:    ber_sizeof_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 720
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ber_sizeof_contextual_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _ber_sizeof_length
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:279,13'
          Dst:             _ber_sizeof_length
    - functionName:    _ber_sizeof_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ber_write_contextual_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 706
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - ber_sizeof_integer
        - ber_write_contextual_tag
        - ber_write_integer
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:707,15'
          Dst:             ber_sizeof_integer
        - Src:             'libfreerdp/crypto/ber.c:709,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:711,2'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:711,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:713,9'
          Dst:             ber_write_contextual_tag
        - Src:             'libfreerdp/crypto/ber.c:714,6'
          Dst:             ber_write_integer
    - functionName:    ber_write_contextual_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          111
      EdgeCount:       29
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - ber_write_length
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:271,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:272,2'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:272,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:273,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:273,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:273,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:274,13'
          Dst:             ber_write_length
    - functionName:    ber_write_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 703
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         374
      ICount:          1243
      EdgeCount:       424
      CyclomaticComplexity: 52
      functionsReached:
        - Stream_Write_UINT16_BE_unchecked
        - Stream_Write_UINT32_BE_unchecked
        - Stream_Write_UINT8_unchecked
        - ber_write_length
        - ber_write_universal_tag
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:649,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:653,7'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:655,7'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:658,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:658,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:658,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:658,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:658,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:658,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:658,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:658,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:658,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:663,7'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:665,7'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:668,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:668,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:668,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:668,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:668,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:668,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:668,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:668,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:668,3'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'libfreerdp/crypto/ber.c:673,7'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:675,7'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:678,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:678,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:678,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:678,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:678,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:678,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:678,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:678,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:678,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:679,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:679,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:679,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:679,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:679,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:679,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:679,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:679,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:679,3'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'libfreerdp/crypto/ber.c:684,7'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:686,7'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:689,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:689,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:689,3'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'libfreerdp/crypto/ber.c:695,7'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:697,7'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:700,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:700,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:700,3'
          Dst:             Stream_Write_UINT32_BE_unchecked
    - functionName:    ber_write_universal_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          91
      EdgeCount:       23
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:152,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:153,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:153,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:153,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    ber_write_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         106
      ICount:          252
      EdgeCount:       108
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UINT16_BE_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:77,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:81,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:82,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:82,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:83,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:84,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:84,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:84,3'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'libfreerdp/crypto/ber.c:88,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:91,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:91,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:92,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:93,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:93,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:93,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:97,2'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:97,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:98,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:98,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:98,2'
          Dst:             Stream_Write_UINT8_unchecked
    - 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:    14
      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_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:    3
      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_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:    2
      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_read_u32_be
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 264
      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_BE
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:258,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:259,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:259,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:261,20'
          Dst:             winpr_Data_Get_UINT32_BE
        - Src:             'winpr/include/winpr/stream.h:263,4'
          Dst:             Stream_Seek
    - functionName:    ber_read_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 587
      functionLinenumberEnd: 636
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          169
      EdgeCount:       51
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_SafeSeekEx
        - WLog_Print_dbg_tag
        - ber_read_length
        - ber_read_universal_tag
        - stream_read_u16_be
        - stream_read_u32_be
        - stream_read_u8
        - winpr_int_assert
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:590,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:592,7'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:594,7'
          Dst:             ber_read_length
        - Src:             'libfreerdp/crypto/ber.c:596,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:602,10'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/ber.c:607,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:611,3'
          Dst:             stream_read_u16_be
        - Src:             'libfreerdp/crypto/ber.c:616,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:617,3'
          Dst:             stream_read_u16_be
        - Src:             'libfreerdp/crypto/ber.c:622,3'
          Dst:             stream_read_u32_be
        - Src:             'libfreerdp/crypto/ber.c:626,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:631,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ber_write_BOOL
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 584
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          66
      EdgeCount:       17
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - ber_write_length
        - ber_write_universal_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:581,2'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:582,2'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:583,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:583,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:583,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    ber_read_BOOL
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 551
      functionLinenumberEnd: 570
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          91
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - ber_read_length
        - ber_read_universal_tag
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:555,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:556,7'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:556,61'
          Dst:             ber_read_length
        - Src:             'libfreerdp/crypto/ber.c:561,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:564,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:567,2'
          Dst:             stream_read_u8
    - functionName:    ber_sizeof_contextual_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 539
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ber_sizeof_contextual_tag
        - ber_sizeof_octet_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:538,15'
          Dst:             ber_sizeof_octet_string
        - Src:             'libfreerdp/crypto/ber.c:539,9'
          Dst:             ber_sizeof_contextual_tag
    - functionName:    ber_sizeof_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _ber_sizeof_length
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:533,13'
          Dst:             _ber_sizeof_length
    - functionName:    ber_write_octet_string_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _ber_sizeof_length
        - ber_write_length
        - ber_write_universal_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:524,6'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:526,6'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:528,13'
          Dst:             _ber_sizeof_length
    - 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:    1
      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:    ber_read_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 501
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          105
      EdgeCount:       31
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - ber_read_octet_string_tag
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:504,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:505,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:506,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:508,7'
          Dst:             ber_read_octet_string_tag
        - Src:             'libfreerdp/crypto/ber.c:510,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:517,2'
          Dst:             Stream_Read
    - functionName:    ber_read_octet_string_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ber_read_length
        - ber_read_universal_tag
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:497,9'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:497,67'
          Dst:             ber_read_length
    - functionName:    ber_read_char_from_unicode_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 493
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Read_UTF16_String_As_UTF8
        - ber_read_octet_string_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:485,7'
          Dst:             ber_read_octet_string_tag
        - Src:             'libfreerdp/crypto/ber.c:488,8'
          Dst:             Stream_Read_UTF16_String_As_UTF8
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,3'
          Dst:             winpr_int_assert
    - functionName:    ber_read_unicode_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 477
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_Seek
        - ber_read_octet_string_tag
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:462,7'
          Dst:             ber_read_octet_string_tag
        - Src:             'libfreerdp/crypto/ber.c:465,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:468,8'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/ber.c:472,14'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/crypto/ber.c:474,2'
          Dst:             Stream_Seek
    - functionName:    ber_write_contextual_char_to_unicode_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 455
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          168
      EdgeCount:       40
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertUtf8ToWChar
        - Stream_GetRemainingCapacity
        - Stream_Write_UTF16_String_From_UTF8
        - ber_sizeof_contextual_tag
        - ber_sizeof_octet_string
        - ber_write_contextual_tag
        - ber_write_length
        - ber_write_universal_tag
        - strlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:438,30'
          Dst:             ConvertUtf8ToWChar
        - Src:             'libfreerdp/crypto/ber.c:441,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:441,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:442,22'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/ber.c:443,27'
          Dst:             ber_sizeof_octet_string
        - Src:             'libfreerdp/crypto/ber.c:445,2'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:445,2'
          Dst:             ber_sizeof_contextual_tag
        - Src:             'libfreerdp/crypto/ber.c:445,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:447,8'
          Dst:             ber_write_contextual_tag
        - Src:             'libfreerdp/crypto/ber.c:448,9'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:449,9'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:451,6'
          Dst:             Stream_Write_UTF16_String_From_UTF8
    - functionName:    ber_write_contextual_unicode_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - _wcslen
        - ber_sizeof_octet_string
        - ber_write_contextual_tag
        - ber_write_octet_string
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:426,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:427,15'
          Dst:             _wcslen
        - Src:             'libfreerdp/crypto/ber.c:428,21'
          Dst:             ber_sizeof_octet_string
        - Src:             'libfreerdp/crypto/ber.c:431,8'
          Dst:             ber_write_contextual_tag
        - Src:             'libfreerdp/crypto/ber.c:432,15'
          Dst:             ber_write_octet_string
    - functionName:    ber_write_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write
        - ber_write_length
        - ber_write_universal_tag
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:383,10'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:384,10'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:385,2'
          Dst:             Stream_Write
    - 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:    1
      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:    ber_write_char_to_unicode_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          152
      EdgeCount:       40
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertUtf8ToWChar
        - Stream_Write_UTF16_String_From_UTF8
        - ber_write_length
        - ber_write_universal_tag
        - strlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:408,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:411,30'
          Dst:             ConvertUtf8ToWChar
        - Src:             'libfreerdp/crypto/ber.c:414,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:414,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:415,22'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/ber.c:416,10'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:417,10'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:419,6'
          Dst:             Stream_Write_UTF16_String_From_UTF8
    - functionName:    ber_write_contextual_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ber_sizeof_octet_string
        - ber_write_contextual_tag
        - ber_write_octet_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:392,17'
          Dst:             ber_sizeof_octet_string
        - Src:             'libfreerdp/crypto/ber.c:396,8'
          Dst:             ber_write_contextual_tag
        - Src:             'libfreerdp/crypto/ber.c:400,6'
          Dst:             ber_write_octet_string
    - functionName:    ber_read_bit_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          61
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - ber_read_length
        - ber_read_universal_tag
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:361,7'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:361,64'
          Dst:             ber_read_length
        - Src:             'libfreerdp/crypto/ber.c:364,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:367,2'
          Dst:             stream_read_u8
    - functionName:    ber_write_enumerated
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          57
      EdgeCount:       17
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - ber_write_length
        - ber_write_universal_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:354,2'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:355,2'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:356,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:356,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:356,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    ber_read_enumerated
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          105
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - ber_read_length
        - ber_read_universal_tag
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:327,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:329,7'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:329,64'
          Dst:             ber_read_length
        - Src:             'libfreerdp/crypto/ber.c:334,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:337,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:340,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:345,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ber_sizeof_sequence_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _ber_sizeof_length
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:320,13'
          Dst:             _ber_sizeof_length
    - functionName:    ber_sizeof_sequence
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _ber_sizeof_length
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:315,13'
          Dst:             _ber_sizeof_length
    - functionName:    ber_write_sequence_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          34
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - ber_write_length
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:309,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:310,13'
          Dst:             ber_write_length
    - functionName:    ber_read_sequence_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - ber_read_length
        - stream_read_u8
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:287,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:290,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:294,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:298,9'
          Dst:             ber_read_length
    - 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:    ber_read_contextual_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          105
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Rewind
        - WLog_Print_dbg_tag
        - ber_read_length
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:248,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:249,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:251,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/crypto/ber.c:253,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/crypto/ber.c:253,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:257,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:261,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:262,3'
          Dst:             Stream_Rewind
        - Src:             'libfreerdp/crypto/ber.c:266,9'
          Dst:             ber_read_length
    - functionName:    ber_write_application_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         62
      ICount:          162
      EdgeCount:       63
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - ber_write_length
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:226,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:230,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:230,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:231,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:232,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:232,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:232,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:233,3'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:237,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:237,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:238,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:238,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:238,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:239,3'
          Dst:             ber_write_length
    - functionName:    ber_read_application_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          157
      EdgeCount:       40
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - ber_read_length
        - stream_read_u8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:168,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:169,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:175,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:178,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:182,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:186,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:190,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:194,10'
          Dst:             ber_read_length
        - Src:             'libfreerdp/crypto/ber.c:200,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:203,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:207,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:211,10'
          Dst:             ber_read_length
    - 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_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_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_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:    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_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:    per_write_numeric_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 566
      functionLinenumberEnd: 591
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          301
      EdgeCount:       78
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - per_write_length
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:567,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:571,7'
          Dst:             per_write_length
        - Src:             'libfreerdp/crypto/per.c:574,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/per.c:586,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:586,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:588,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:588,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:588,3'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    per_write_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          126
      EdgeCount:       42
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_BE_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:79,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/per.c:81,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:81,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:81,3'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'libfreerdp/crypto/per.c:85,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/per.c:87,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:87,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:87,3'
          Dst:             Stream_Write_UINT8_unchecked
    - 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:    14
      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_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:    3
      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:    per_read_numeric_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 539
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek
        - per_read_length
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:543,7'
          Dst:             per_read_length
        - Src:             'libfreerdp/crypto/per.c:548,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/per.c:551,2'
          Dst:             Stream_Seek
    - functionName:    per_read_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          172
      EdgeCount:       48
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u8
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:43,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:44,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/per.c:47,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/per.c:51,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/per.c:55,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:55,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:56,3'
          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:    12
      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:    per_write_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          139
      EdgeCount:       33
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - per_write_length
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:520,7'
          Dst:             per_write_length
        - Src:             'libfreerdp/crypto/per.c:523,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/per.c:526,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:526,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:526,3'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,3'
          Dst:             winpr_int_assert
    - functionName:    per_read_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 483
      functionLinenumberEnd: 502
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          86
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_Seek
        - WLog_Print_dbg_tag
        - per_check_oid_and_log_mismatch
        - per_read_length
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:486,7'
          Dst:             per_read_length
        - Src:             'libfreerdp/crypto/per.c:491,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/per.c:495,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/per.c:498,26'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/crypto/per.c:499,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/crypto/per.c:501,9'
          Dst:             per_check_oid_and_log_mismatch
    - 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:    per_check_oid_and_log_mismatch
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - memcmp
        - winpr_BinToHexString
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:392,6'
          Dst:             memcmp
        - Src:             'libfreerdp/crypto/per.c:398,19'
          Dst:             winpr_BinToHexString
        - Src:             'libfreerdp/crypto/per.c:399,22'
          Dst:             winpr_BinToHexString
        - Src:             'libfreerdp/crypto/per.c:401,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    per_write_object_identifier
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         86
      ICount:          246
      EdgeCount:       87
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:460,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/per.c:462,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/per.c:463,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:463,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:463,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/per.c:464,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:464,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:464,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/per.c:465,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:465,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:465,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/per.c:466,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:466,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:466,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/per.c:467,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:467,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:467,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    per_read_object_identifier
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          107
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - per_check_oid_and_log_mismatch
        - per_read_length
        - stream_read_u8
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:424,7'
          Dst:             per_read_length
        - Src:             'libfreerdp/crypto/per.c:429,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/per.c:433,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/per.c:436,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/per.c:440,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/per.c:441,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/per.c:442,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/per.c:443,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/per.c:445,9'
          Dst:             per_check_oid_and_log_mismatch
    - functionName:    per_write_enumerated
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          67
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:384,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/per.c:386,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:386,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:386,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    per_read_enumerated
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          72
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - stream_read_u8
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:356,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/per.c:359,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:360,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/per.c:365,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    per_write_integer16
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          90
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_BE_unchecked
        - winpr_int_assert
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:338,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/per.c:340,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:340,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:340,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
    - functionName:    per_read_integer16
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - stream_read_u16_be
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:309,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/per.c:312,2'
          Dst:             stream_read_u16_be
        - Src:             'libfreerdp/crypto/per.c:316,3'
          Dst:             WLog_Print_dbg_tag
    - 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:    2
      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_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:    per_write_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         193
      ICount:          644
      EdgeCount:       220
      CyclomaticComplexity: 29
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_BE_unchecked
        - Stream_Write_UINT32_BE_unchecked
        - Stream_Write_UINT8_unchecked
        - per_write_length
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:272,8'
          Dst:             per_write_length
        - Src:             'libfreerdp/crypto/per.c:274,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/per.c:276,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:276,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:276,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:276,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:276,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:276,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:276,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:276,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:276,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/per.c:280,8'
          Dst:             per_write_length
        - Src:             'libfreerdp/crypto/per.c:282,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/per.c:284,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:284,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:284,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:284,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:284,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:284,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:284,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:284,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:284,3'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'libfreerdp/crypto/per.c:288,8'
          Dst:             per_write_length
        - Src:             'libfreerdp/crypto/per.c:290,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/per.c:292,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:292,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:292,3'
          Dst:             Stream_Write_UINT32_BE_unchecked
    - functionName:    per_read_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          105
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - per_read_length
        - stream_read_u16_be
        - stream_read_u8
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:240,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:242,7'
          Dst:             per_read_length
        - Src:             'libfreerdp/crypto/per.c:245,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/per.c:251,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/per.c:253,3'
          Dst:             stream_read_u16_be
    - 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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1242,3'
          Dst:             Stream_Fill
    - functionName:    per_write_padding
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Zero
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:222,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/per.c:224,2'
          Dst:             Stream_Zero
    - functionName:    per_read_padding
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:205,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/per.c:208,2'
          Dst:             Stream_Seek
    - functionName:    per_write_number_of_sets
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          65
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:188,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/per.c:190,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:190,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:190,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    per_read_number_of_sets
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          50
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:169,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/per.c:172,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:173,2'
          Dst:             stream_read_u8
    - functionName:    per_write_selection
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          65
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:153,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/per.c:155,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:155,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:155,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    per_read_selection
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          50
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:135,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/per.c:138,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:139,2'
          Dst:             stream_read_u8
    - functionName:    per_write_choice
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          65
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:119,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/per.c:121,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:121,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/per.c:121,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    per_read_choice
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/per.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u8
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/per.c:102,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/per.c:105,2'
          Dst:             stream_read_u8
    - functionName:    base64_decode_char
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/base64.c'
      linkageType:     InternalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    crypto_base64url_decode
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/base64.c'
      linkageType:     InternalLinkage
      functionLinenumber: 552
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_decode
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/base64.c:554,6'
          Dst:             base64_decode
    - functionName:    base64_decode
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/base64.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 526
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          471
      EdgeCount:       77
      CyclomaticComplexity: 22
      functionsReached:
        - base64_decode_char
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/base64.c:469,10'
          Dst:             base64_decode_char
        - Src:             'libfreerdp/crypto/base64.c:470,10'
          Dst:             base64_decode_char
        - Src:             'libfreerdp/crypto/base64.c:471,10'
          Dst:             base64_decode_char
        - Src:             'libfreerdp/crypto/base64.c:472,10'
          Dst:             base64_decode_char
        - Src:             'libfreerdp/crypto/base64.c:484,9'
          Dst:             base64_decode_char
        - Src:             'libfreerdp/crypto/base64.c:485,9'
          Dst:             base64_decode_char
        - Src:             'libfreerdp/crypto/base64.c:489,31'
          Dst:             base64_decode_char
        - Src:             'libfreerdp/crypto/base64.c:490,31'
          Dst:             base64_decode_char
    - functionName:    crypto_base64url_encode
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/base64.c'
      linkageType:     InternalLinkage
      functionLinenumber: 546
      functionLinenumberEnd: 547
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_encode
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/base64.c:547,9'
          Dst:             base64_encode
    - functionName:    base64_encode
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/base64.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_encode_ex
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/base64.c:425,9'
          Dst:             base64_encode_ex
    - functionName:    base64_encode_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/base64.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - int
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         88
      ICount:          522
      EdgeCount:       96
      CyclomaticComplexity: 10
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/base64.c:368,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/base64.c:349,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/base64.c:350,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/base64.c:351,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/base64.c:352,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/base64.c:378,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/base64.c:379,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/base64.c:397,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/base64.c:398,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/base64.c:399,4'
          Dst:             winpr_int_assert
    - functionName:    crypto_base64_decode
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/base64.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 543
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_decode
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/base64.c:542,6'
          Dst:             base64_decode
    - functionName:    crypto_base64_encode
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/base64.c'
      linkageType:     InternalLinkage
      functionLinenumber: 534
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_encode
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/base64.c:535,9'
          Dst:             base64_encode
    - functionName:    crypto_base64_encode_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/base64.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - base64_encode_ex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/base64.c:530,9'
          Dst:             base64_encode_ex
    - functionName:    object_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         87
      ICount:          312
      EdgeCount:       99
      CyclomaticComplexity: 14
      functionsReached:
        - ASN1_STRING_to_UTF8
        - CRYPTO_free
        - check_string_is_host_or_ip
        - strndup
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:422,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:423,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:428,21'
          Dst:             ASN1_STRING_to_UTF8
        - Src:             'libfreerdp/crypto/x509_utils.c:434,51'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:434,51'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:434,6'
          Dst:             check_string_is_host_or_ip
        - Src:             'libfreerdp/crypto/x509_utils.c:436,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:436,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:436,12'
          Dst:             strndup
        - Src:             'libfreerdp/crypto/x509_utils.c:438,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:438,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:440,2'
          Dst:             CRYPTO_free
    - functionName:    ASN1_STRING_to_UTF8
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    check_string_is_host_or_ip
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strnlen
        - winpr_str_is_valid_urlN
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:272,6'
          Dst:             strnlen
        - Src:             'libfreerdp/crypto/x509_utils.c:274,9'
          Dst:             winpr_str_is_valid_urlN
    - functionName:    CRYPTO_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    object_list_allocate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 399
      functionLinenumberEnd: 416
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          101
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:402,27'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/x509_utils.c:403,19'
          Dst:             calloc
    - functionName:    string_list_allocate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:240,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:243,27'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/x509_utils.c:244,19'
          Dst:             calloc
    - functionName:    general_name_type_label
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:120,9'
          Dst:             snprintf
    - functionName:    check_string_is_email
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:350,10'
          Dst:             strnlen
    - functionName:    extract_string_generic
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         101
      ICount:          416
      EdgeCount:       114
      CyclomaticComplexity: 15
      functionsReached:
        - ASN1_STRING_to_UTF8
        - CRYPTO_free
        - ERR_error_string
        - ERR_get_error
        - WLog_Print_dbg_tag
        - general_name_type_label
        - string_list_allocate
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:289,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:282,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:283,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:285,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:308,17'
          Dst:             ASN1_STRING_to_UTF8
        - Src:             'libfreerdp/crypto/x509_utils.c:311,3'
          Dst:             general_name_type_label
        - Src:             'libfreerdp/crypto/x509_utils.c:311,3'
          Dst:             ERR_get_error
        - Src:             'libfreerdp/crypto/x509_utils.c:311,3'
          Dst:             ERR_error_string
        - Src:             'libfreerdp/crypto/x509_utils.c:311,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:316,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:316,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:318,3'
          Dst:             CRYPTO_free
        - Src:             'libfreerdp/crypto/x509_utils.c:322,34'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:322,34'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:322,7'
          Dst:             string_list_allocate
        - Src:             'libfreerdp/crypto/x509_utils.c:325,3'
          Dst:             CRYPTO_free
        - Src:             'libfreerdp/crypto/x509_utils.c:330,31'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:330,31'
          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:    19
      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:    sk_GENERAL_NAME_pop_free
      functionSourceFile: '/usr/include/openssl/x509v3.h'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_pop_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509v3.h:166,1'
          Dst:             OPENSSL_sk_pop_free
    - functionName:    sk_GENERAL_NAME_value
      functionSourceFile: '/usr/include/openssl/x509v3.h'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509v3.h:166,1'
          Dst:             OPENSSL_sk_value
    - functionName:    sk_GENERAL_NAME_num
      functionSourceFile: '/usr/include/openssl/x509v3.h'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_num
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509v3.h:166,1'
          Dst:             OPENSSL_sk_num
    - functionName:    x509_utils_bio_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 987
      functionLinenumberEnd: 1017
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          109
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - BIO_ctrl
        - BIO_number_written
        - BIO_read
        - ERR_clear_error
        - calloc
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:989,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:994,2'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/crypto/x509_utils.c:996,22'
          Dst:             BIO_number_written
        - Src:             'libfreerdp/crypto/x509_utils.c:1000,11'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/x509_utils.c:1005,2'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/crypto/x509_utils.c:1006,17'
          Dst:             BIO_read
    - functionName:    BIO_number_written
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    verify_cb
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 896
      functionLinenumberEnd: 912
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - X509_STORE_CTX_get_current_cert
        - X509_STORE_CTX_get_error
        - X509_STORE_CTX_get_error_depth
        - X509_verify_cert_error_string
        - winpr_int_assert
        - x509_utils_get_subject
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:899,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:900,13'
          Dst:             X509_STORE_CTX_get_error
        - Src:             'libfreerdp/crypto/x509_utils.c:901,14'
          Dst:             X509_STORE_CTX_get_error_depth
        - Src:             'libfreerdp/crypto/x509_utils.c:902,17'
          Dst:             X509_STORE_CTX_get_current_cert
        - Src:             'libfreerdp/crypto/x509_utils.c:903,22'
          Dst:             X509_verify_cert_error_string
        - Src:             'libfreerdp/crypto/x509_utils.c:904,16'
          Dst:             x509_utils_get_subject
        - Src:             'libfreerdp/crypto/x509_utils.c:906,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:908,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    X509_STORE_CTX_get_error
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_get_error_depth
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_get_current_cert
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_verify_cert_error_string
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_get_subject
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - X509_get_subject_name
        - crypto_print_name
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:95,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:98,30'
          Dst:             X509_get_subject_name
        - Src:             'libfreerdp/crypto/x509_utils.c:98,12'
          Dst:             crypto_print_name
        - Src:             'libfreerdp/crypto/x509_utils.c:100,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    X509_get_subject_name
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    crypto_print_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_free_all
        - BIO_new
        - BIO_s_mem
        - X509_NAME_print_ex
        - x509_utils_bio_read
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:79,24'
          Dst:             BIO_s_mem
        - Src:             'libfreerdp/crypto/x509_utils.c:79,16'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/x509_utils.c:83,6'
          Dst:             X509_NAME_print_ex
        - Src:             'libfreerdp/crypto/x509_utils.c:84,12'
          Dst:             x509_utils_bio_read
        - Src:             'libfreerdp/crypto/x509_utils.c:86,2'
          Dst:             BIO_free_all
    - functionName:    X509_NAME_print_ex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_verify
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 916
      functionLinenumberEnd: 984
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          172
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - OPENSSL_init_crypto
        - X509_LOOKUP_ctrl
        - X509_LOOKUP_hash_dir
        - X509_STORE_CTX_free
        - X509_STORE_CTX_get_error
        - X509_STORE_CTX_init
        - X509_STORE_CTX_new
        - X509_STORE_CTX_set_purpose
        - X509_STORE_CTX_set_verify_cb
        - X509_STORE_add_lookup
        - X509_STORE_free
        - X509_STORE_new
        - X509_STORE_set_default_paths
        - X509_STORE_set_flags
        - X509_verify_cert
        - verify_cb
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:923,25'
          Dst:             X509_STORE_new
        - Src:             'libfreerdp/crypto/x509_utils.c:931,2'
          Dst:             OPENSSL_init_crypto
        - Src:             'libfreerdp/crypto/x509_utils.c:936,6'
          Dst:             X509_STORE_set_default_paths
        - Src:             'libfreerdp/crypto/x509_utils.c:939,56'
          Dst:             X509_LOOKUP_hash_dir
        - Src:             'libfreerdp/crypto/x509_utils.c:939,24'
          Dst:             X509_STORE_add_lookup
        - Src:             'libfreerdp/crypto/x509_utils.c:944,2'
          Dst:             X509_LOOKUP_ctrl
        - Src:             'libfreerdp/crypto/x509_utils.c:948,3'
          Dst:             X509_LOOKUP_ctrl
        - Src:             'libfreerdp/crypto/x509_utils.c:951,2'
          Dst:             X509_STORE_set_flags
        - Src:             'libfreerdp/crypto/x509_utils.c:958,25'
          Dst:             X509_STORE_CTX_new
        - Src:             'libfreerdp/crypto/x509_utils.c:962,8'
          Dst:             X509_STORE_CTX_init
        - Src:             'libfreerdp/crypto/x509_utils.c:965,3'
          Dst:             X509_STORE_CTX_set_purpose
        - Src:             'libfreerdp/crypto/x509_utils.c:966,3'
          Dst:             X509_STORE_CTX_set_verify_cb
        - Src:             'libfreerdp/crypto/x509_utils.c:966,3'
          Dst:             verify_cb
        - Src:             'libfreerdp/crypto/x509_utils.c:968,8'
          Dst:             X509_verify_cert
        - Src:             'libfreerdp/crypto/x509_utils.c:969,9'
          Dst:             X509_STORE_CTX_get_error
        - Src:             'libfreerdp/crypto/x509_utils.c:971,3'
          Dst:             X509_STORE_CTX_free
        - Src:             'libfreerdp/crypto/x509_utils.c:981,2'
          Dst:             X509_STORE_free
    - functionName:    X509_STORE_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    OPENSSL_init_crypto
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_set_default_paths
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_LOOKUP_hash_dir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_add_lookup
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_LOOKUP_ctrl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_set_flags
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_set_purpose
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_set_verify_cb
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_verify_cert
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_get_common_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 860
      functionLinenumberEnd: 893
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          192
      EdgeCount:       51
      CyclomaticComplexity: 12
      functionsReached:
        - ASN1_STRING_to_UTF8
        - CRYPTO_free
        - X509_NAME_ENTRY_get_data
        - X509_NAME_get_entry
        - X509_NAME_get_index_by_NID
        - X509_get_subject_name
        - check_string_is_host_or_ip
        - strndup
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:861,34'
          Dst:             X509_get_subject_name
        - Src:             'libfreerdp/crypto/x509_utils.c:865,20'
          Dst:             X509_NAME_get_index_by_NID
        - Src:             'libfreerdp/crypto/x509_utils.c:869,33'
          Dst:             X509_NAME_get_entry
        - Src:             'libfreerdp/crypto/x509_utils.c:873,34'
          Dst:             X509_NAME_ENTRY_get_data
        - Src:             'libfreerdp/crypto/x509_utils.c:878,21'
          Dst:             ASN1_STRING_to_UTF8
        - Src:             'libfreerdp/crypto/x509_utils.c:884,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:884,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:883,6'
          Dst:             check_string_is_host_or_ip
        - Src:             'libfreerdp/crypto/x509_utils.c:889,17'
          Dst:             strndup
        - Src:             'libfreerdp/crypto/x509_utils.c:891,2'
          Dst:             CRYPTO_free
    - functionName:    X509_NAME_get_index_by_NID
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_NAME_get_entry
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_NAME_ENTRY_get_data
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_nid_to_winpr
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 715
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          97
      EdgeCount:       38
      CyclomaticComplexity: 20
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:716,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    get_rsa_pss_digest
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 757
      functionLinenumberEnd: 836
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          184
      EdgeCount:       36
      CyclomaticComplexity: 12
      functionsReached:
        - ASN1_STRING_get0_data
        - ASN1_STRING_length
        - OBJ_obj2nid
        - RSA_PSS_PARAMS_free
        - X509_ALGOR_free
        - X509_ALGOR_get0
        - d2i_RSA_PSS_PARAMS
        - d2i_X509_ALGOR
        - hash_nid_to_winpr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:770,2'
          Dst:             X509_ALGOR_get0
        - Src:             'libfreerdp/crypto/x509_utils.c:780,8'
          Dst:             ASN1_STRING_get0_data
        - Src:             'libfreerdp/crypto/x509_utils.c:781,45'
          Dst:             ASN1_STRING_length
        - Src:             'libfreerdp/crypto/x509_utils.c:781,11'
          Dst:             d2i_RSA_PSS_PARAMS
        - Src:             'libfreerdp/crypto/x509_utils.c:792,3'
          Dst:             X509_ALGOR_get0
        - Src:             'libfreerdp/crypto/x509_utils.c:793,38'
          Dst:             OBJ_obj2nid
        - Src:             'libfreerdp/crypto/x509_utils.c:793,20'
          Dst:             hash_nid_to_winpr
        - Src:             'libfreerdp/crypto/x509_utils.c:806,3'
          Dst:             X509_ALGOR_get0
        - Src:             'libfreerdp/crypto/x509_utils.c:807,7'
          Dst:             OBJ_obj2nid
        - Src:             'libfreerdp/crypto/x509_utils.c:814,9'
          Dst:             ASN1_STRING_get0_data
        - Src:             'libfreerdp/crypto/x509_utils.c:815,51'
          Dst:             ASN1_STRING_length
        - Src:             'libfreerdp/crypto/x509_utils.c:815,21'
          Dst:             d2i_X509_ALGOR
        - Src:             'libfreerdp/crypto/x509_utils.c:820,3'
          Dst:             X509_ALGOR_get0
        - Src:             'libfreerdp/crypto/x509_utils.c:821,35'
          Dst:             OBJ_obj2nid
        - Src:             'libfreerdp/crypto/x509_utils.c:821,17'
          Dst:             hash_nid_to_winpr
        - Src:             'libfreerdp/crypto/x509_utils.c:834,2'
          Dst:             RSA_PSS_PARAMS_free
        - Src:             'libfreerdp/crypto/x509_utils.c:835,2'
          Dst:             X509_ALGOR_free
    - functionName:    X509_ALGOR_get0
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ASN1_STRING_get0_data
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ASN1_STRING_length
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    d2i_RSA_PSS_PARAMS
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    OBJ_obj2nid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    d2i_X509_ALGOR
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RSA_PSS_PARAMS_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_ALGOR_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_get_signature_alg
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 840
      functionLinenumberEnd: 857
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          65
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - OBJ_find_sigid_algs
        - X509_get0_signature
        - X509_get_signature_nid
        - get_rsa_pss_digest
        - hash_nid_to_winpr
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:841,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:843,18'
          Dst:             X509_get_signature_nid
        - Src:             'libfreerdp/crypto/x509_utils.c:848,3'
          Dst:             X509_get0_signature
        - Src:             'libfreerdp/crypto/x509_utils.c:849,10'
          Dst:             get_rsa_pss_digest
        - Src:             'libfreerdp/crypto/x509_utils.c:853,6'
          Dst:             OBJ_find_sigid_algs
        - Src:             'libfreerdp/crypto/x509_utils.c:856,9'
          Dst:             hash_nid_to_winpr
    - functionName:    X509_get_signature_nid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_get0_signature
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    OBJ_find_sigid_algs
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_from_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 688
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          81
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - BIO_free_all
        - BIO_new_file
        - BIO_new_mem_buf
        - PEM_read_bio_X509
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:691,9'
          Dst:             BIO_new_file
        - Src:             'libfreerdp/crypto/x509_utils.c:697,9'
          Dst:             BIO_new_mem_buf
        - Src:             'libfreerdp/crypto/x509_utils.c:702,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:706,15'
          Dst:             PEM_read_bio_X509
        - Src:             'libfreerdp/crypto/x509_utils.c:707,2'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/crypto/x509_utils.c:709,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    x509_utils_print_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 662
      functionLinenumberEnd: 685
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - x509_utils_get_hash
        - x509_utils_get_issuer
        - x509_utils_get_subject
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:663,18'
          Dst:             x509_utils_get_subject
        - Src:             'libfreerdp/crypto/x509_utils.c:664,17'
          Dst:             x509_utils_get_issuer
        - Src:             'libfreerdp/crypto/x509_utils.c:665,20'
          Dst:             x509_utils_get_hash
        - Src:             'libfreerdp/crypto/x509_utils.c:669,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:673,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:674,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:675,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:676,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:677,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    x509_utils_get_issuer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - X509_get_issuer_name
        - crypto_print_name
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:616,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:619,29'
          Dst:             X509_get_issuer_name
        - Src:             'libfreerdp/crypto/x509_utils.c:619,11'
          Dst:             crypto_print_name
        - Src:             'libfreerdp/crypto/x509_utils.c:621,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    x509_utils_get_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          97
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - EVP_get_digestbyname
        - WLog_Print_dbg_tag
        - X509_digest
        - calloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:44,21'
          Dst:             EVP_get_digestbyname
        - Src:             'libfreerdp/crypto/x509_utils.c:47,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:52,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:58,7'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/x509_utils.c:61,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:65,6'
          Dst:             X509_digest
        - Src:             'libfreerdp/crypto/x509_utils.c:68,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    EVP_get_digestbyname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_digest
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_get_issuer_name
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sk_ASN1_OBJECT_pop_free
      functionSourceFile: '/usr/include/openssl/asn1.h'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_pop_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/asn1.h:536,1'
          Dst:             OPENSSL_sk_pop_free
    - functionName:    sk_ASN1_OBJECT_find
      functionSourceFile: '/usr/include/openssl/asn1.h'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/asn1.h:536,1'
          Dst:             OPENSSL_sk_find
    - functionName:    OPENSSL_sk_find
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    asn1_object_cmp
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 634
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          98
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - OBJ_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:633,9'
          Dst:             OBJ_cmp
    - functionName:    OBJ_cmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sk_ASN1_OBJECT_set_cmp_func
      functionSourceFile: '/usr/include/openssl/asn1.h'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_set_cmp_func
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/asn1.h:536,1'
          Dst:             OPENSSL_sk_set_cmp_func
    - functionName:    OPENSSL_sk_set_cmp_func
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_check_eku
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 637
      functionLinenumberEnd: 659
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - ASN1_OBJECT_free
        - OBJ_nid2obj
        - X509_get_ext_d2i
        - asn1_object_cmp
        - sk_ASN1_OBJECT_find
        - sk_ASN1_OBJECT_pop_free
        - sk_ASN1_OBJECT_set_cmp_func
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:645,8'
          Dst:             OBJ_nid2obj
        - Src:             'libfreerdp/crypto/x509_utils.c:649,14'
          Dst:             X509_get_ext_d2i
        - Src:             'libfreerdp/crypto/x509_utils.c:653,2'
          Dst:             sk_ASN1_OBJECT_set_cmp_func
        - Src:             'libfreerdp/crypto/x509_utils.c:653,2'
          Dst:             asn1_object_cmp
        - Src:             'libfreerdp/crypto/x509_utils.c:654,6'
          Dst:             sk_ASN1_OBJECT_find
        - Src:             'libfreerdp/crypto/x509_utils.c:657,2'
          Dst:             sk_ASN1_OBJECT_pop_free
        - Src:             'libfreerdp/crypto/x509_utils.c:657,2'
          Dst:             ASN1_OBJECT_free
    - functionName:    OBJ_nid2obj
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_get_ext_d2i
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ASN1_OBJECT_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    extract_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - check_string_is_host_or_ip
        - extract_string_generic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:343,9'
          Dst:             extract_string_generic
        - Src:             'libfreerdp/crypto/x509_utils.c:343,9'
          Dst:             check_string_is_host_or_ip
    - functionName:    x509_utils_get_dns_names
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 609
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          118
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - extract_string
        - map_subject_alt_name
        - string_list_free
        - string_list_initialize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:576,21'
          Dst:             string_list_initialize
        - Src:             'libfreerdp/crypto/x509_utils.c:577,2'
          Dst:             map_subject_alt_name
        - Src:             'libfreerdp/crypto/x509_utils.c:577,2'
          Dst:             extract_string
        - Src:             'libfreerdp/crypto/x509_utils.c:582,3'
          Dst:             string_list_free
        - Src:             'libfreerdp/crypto/x509_utils.c:588,26'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/x509_utils.c:589,15'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/x509_utils.c:593,3'
          Dst:             string_list_free
        - Src:             'libfreerdp/crypto/x509_utils.c:607,2'
          Dst:             string_list_free
    - functionName:    string_list_initialize
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 235
      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:    map_subject_alt_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - GENERAL_NAME_free
        - X509_get_ext_d2i
        - sk_GENERAL_NAME_num
        - sk_GENERAL_NAME_pop_free
        - sk_GENERAL_NAME_value
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:176,33'
          Dst:             X509_get_ext_d2i
        - Src:             'libfreerdp/crypto/x509_utils.c:181,18'
          Dst:             sk_GENERAL_NAME_num
        - Src:             'libfreerdp/crypto/x509_utils.c:185,24'
          Dst:             sk_GENERAL_NAME_value
        - Src:             'libfreerdp/crypto/x509_utils.c:199,2'
          Dst:             sk_GENERAL_NAME_pop_free
        - Src:             'libfreerdp/crypto/x509_utils.c:199,2'
          Dst:             GENERAL_NAME_free
    - functionName:    string_list_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GENERAL_NAME_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_dns_names_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 557
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          67
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - CRYPTO_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:566,5'
          Dst:             CRYPTO_free
    - functionName:    x509_utils_get_date
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 530
      functionLinenumberEnd: 554
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          101
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - ASN1_TIME_print
        - BIO_ctrl
        - BIO_free_all
        - BIO_new
        - BIO_s_mem
        - X509_get0_notAfter
        - X509_get0_notBefore
        - strndup
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:531,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:533,38'
          Dst:             X509_get0_notBefore
        - Src:             'libfreerdp/crypto/x509_utils.c:533,66'
          Dst:             X509_get0_notAfter
        - Src:             'libfreerdp/crypto/x509_utils.c:537,22'
          Dst:             BIO_s_mem
        - Src:             'libfreerdp/crypto/x509_utils.c:537,14'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/x509_utils.c:542,6'
          Dst:             ASN1_TIME_print
        - Src:             'libfreerdp/crypto/x509_utils.c:546,3'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/crypto/x509_utils.c:547,9'
          Dst:             strndup
        - Src:             'libfreerdp/crypto/x509_utils.c:552,2'
          Dst:             BIO_free_all
    - functionName:    X509_get0_notBefore
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_get0_notAfter
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ASN1_TIME_print
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    object_list_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:446,2'
          Dst:             winpr_int_assert
    - functionName:    extract_othername_object_as_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          233
      EdgeCount:       57
      CyclomaticComplexity: 12
      functionsReached:
        - OBJ_cmp
        - object_list_allocate
        - object_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:456,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:466,11'
          Dst:             OBJ_cmp
        - Src:             'libfreerdp/crypto/x509_utils.c:471,34'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:471,34'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:471,7'
          Dst:             object_list_allocate
        - Src:             'libfreerdp/crypto/x509_utils.c:478,6'
          Dst:             object_string
    - functionName:    object_list_initialize
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_get_upn
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - OBJ_nid2obj
        - extract_othername_object_as_string
        - map_subject_alt_name
        - object_list_free
        - object_list_initialize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:512,21'
          Dst:             object_list_initialize
        - Src:             'libfreerdp/crypto/x509_utils.c:514,17'
          Dst:             OBJ_nid2obj
        - Src:             'libfreerdp/crypto/x509_utils.c:516,2'
          Dst:             map_subject_alt_name
        - Src:             'libfreerdp/crypto/x509_utils.c:516,2'
          Dst:             extract_othername_object_as_string
        - Src:             'libfreerdp/crypto/x509_utils.c:520,3'
          Dst:             object_list_free
        - Src:             'libfreerdp/crypto/x509_utils.c:525,2'
          Dst:             object_list_free
    - functionName:    extract_email
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - check_string_is_email
        - extract_string_generic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:355,9'
          Dst:             extract_string_generic
        - Src:             'libfreerdp/crypto/x509_utils.c:355,9'
          Dst:             check_string_is_email
    - functionName:    x509_utils_get_email
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CRYPTO_free
        - extract_email
        - map_subject_alt_name
        - string_list_free
        - string_list_initialize
        - strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:494,21'
          Dst:             string_list_initialize
        - Src:             'libfreerdp/crypto/x509_utils.c:496,2'
          Dst:             map_subject_alt_name
        - Src:             'libfreerdp/crypto/x509_utils.c:496,2'
          Dst:             extract_email
        - Src:             'libfreerdp/crypto/x509_utils.c:500,3'
          Dst:             string_list_free
        - Src:             'libfreerdp/crypto/x509_utils.c:504,17'
          Dst:             strndup
        - Src:             'libfreerdp/crypto/x509_utils.c:505,2'
          Dst:             CRYPTO_free
        - Src:             'libfreerdp/crypto/x509_utils.c:506,2'
          Dst:             string_list_free
    - 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:    x509_from_rsa
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          95
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - BIO_free_all
        - BIO_new
        - BIO_s_secmem
        - EVP_PKEY_free
        - PEM_read_bio_PUBKEY
        - PEM_write_bio_RSA_PUBKEY
        - WLog_Print_dbg_tag
        - X509_free
        - X509_new
        - X509_set_pubkey
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:202,6'
          Dst:             BIO_s_secmem
        - Src:             'libfreerdp/crypto/cert_common.c:198,13'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/cert_common.c:207,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/cert_common.c:211,17'
          Dst:             PEM_write_bio_RSA_PUBKEY
        - Src:             'libfreerdp/crypto/cert_common.c:214,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/cert_common.c:218,11'
          Dst:             PEM_read_bio_PUBKEY
        - Src:             'libfreerdp/crypto/cert_common.c:221,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/cert_common.c:225,9'
          Dst:             X509_new
        - Src:             'libfreerdp/crypto/cert_common.c:228,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/cert_common.c:232,18'
          Dst:             X509_set_pubkey
        - Src:             'libfreerdp/crypto/cert_common.c:235,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/cert_common.c:236,3'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/cert_common.c:241,2'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/crypto/cert_common.c:242,2'
          Dst:             EVP_PKEY_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:    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:    PEM_write_bio_RSA_PUBKEY
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PEM_read_bio_PUBKEY
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_set_pubkey
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cert_info_read_exponent
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          94
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - WLog_Print_dbg_tag
        - crypto_reverse
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:174,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/cert_common.c:178,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/cert_common.c:183,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/cert_common.c:187,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/crypto/cert_common.c:188,2'
          Dst:             crypto_reverse
        - Src:             'libfreerdp/crypto/cert_common.c:189,2'
          Dst:             crypto_reverse
    - 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:    cert_info_allocate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          67
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - cert_info_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:143,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/cert_common.c:144,2'
          Dst:             cert_info_free
        - Src:             'libfreerdp/crypto/cert_common.c:150,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    cert_info_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:135,2'
          Dst:             winpr_int_assert
    - functionName:    cert_info_read_modulus
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - WLog_Print_dbg_tag
        - cert_info_allocate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:159,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/cert_common.c:163,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/cert_common.c:166,7'
          Dst:             cert_info_allocate
        - Src:             'libfreerdp/crypto/cert_common.c:168,2'
          Dst:             Stream_Read
    - functionName:    cert_info_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          101
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:115,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/cert_common.c:116,2'
          Dst:             winpr_int_assert
    - functionName:    cert_info_create
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          85
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - cert_info_free
        - read_bignum
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:92,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/cert_common.c:93,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/cert_common.c:97,7'
          Dst:             read_bignum
        - Src:             'libfreerdp/crypto/cert_common.c:103,8'
          Dst:             read_bignum
        - Src:             'libfreerdp/crypto/cert_common.c:109,2'
          Dst:             cert_info_free
    - functionName:    read_bignum
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          163
      EdgeCount:       47
      CyclomaticComplexity: 9
      functionsReached:
        - BN_bn2bin
        - BN_num_bits
        - crypto_reverse
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:51,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/cert_common.c:52,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/cert_common.c:53,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/cert_common.c:62,18'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/cert_common.c:80,3'
          Dst:             BN_bn2bin
        - Src:             'libfreerdp/crypto/cert_common.c:81,3'
          Dst:             crypto_reverse
    - functionName:    tls_config_check_allowed_hashed
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1552
      functionLinenumberEnd: 1612
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          212
      EdgeCount:       61
      CyclomaticComplexity: 13
      functionsReached:
        - WINPR_JSON_GetArrayItem
        - WINPR_JSON_GetArraySize
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_GetStringValue
        - WINPR_JSON_IsArray
        - WINPR_JSON_IsObject
        - WINPR_JSON_IsString
        - WLog_Print_dbg_tag
        - _stricmp
        - freerdp_certificate_get_fingerprint_by_hash_ex
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1553,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1554,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1555,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1557,19'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/crypto/tls.c:1558,14'
          Dst:             WINPR_JSON_IsArray
        - Src:             'libfreerdp/crypto/tls.c:1561,25'
          Dst:             WINPR_JSON_GetArraySize
        - Src:             'libfreerdp/crypto/tls.c:1563,21'
          Dst:             WINPR_JSON_GetArrayItem
        - Src:             'libfreerdp/crypto/tls.c:1564,16'
          Dst:             WINPR_JSON_IsObject
        - Src:             'libfreerdp/crypto/tls.c:1566,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1572,21'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/crypto/tls.c:1573,16'
          Dst:             WINPR_JSON_IsString
        - Src:             'libfreerdp/crypto/tls.c:1575,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1581,21'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/crypto/tls.c:1582,16'
          Dst:             WINPR_JSON_IsString
        - Src:             'libfreerdp/crypto/tls.c:1584,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1591,22'
          Dst:             WINPR_JSON_GetStringValue
        - Src:             'libfreerdp/crypto/tls.c:1592,22'
          Dst:             WINPR_JSON_GetStringValue
        - Src:             'libfreerdp/crypto/tls.c:1594,16'
          Dst:             freerdp_certificate_get_fingerprint_by_hash_ex
        - Src:             'libfreerdp/crypto/tls.c:1597,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1604,19'
          Dst:             _stricmp
    - 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:    73
      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:    tls_config_parse_bool
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1540
      functionLinenumberEnd: 1548
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WINPR_JSON_GetObjectItemCaseSensitive
        - WINPR_JSON_IsBool
        - WINPR_JSON_IsTrue
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1541,20'
          Dst:             WINPR_JSON_GetObjectItemCaseSensitive
        - Src:             'libfreerdp/crypto/tls.c:1542,15'
          Dst:             WINPR_JSON_IsBool
        - Src:             'libfreerdp/crypto/tls.c:1545,6'
          Dst:             WINPR_JSON_IsTrue
    - functionName:    compare_fingerprint
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1430
      functionLinenumberEnd: 1445
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          89
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - _stricmp
        - freerdp_certificate_get_fingerprint_by_hash_ex
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1436,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1438,12'
          Dst:             freerdp_certificate_get_fingerprint_by_hash_ex
        - Src:             'libfreerdp/crypto/tls.c:1442,11'
          Dst:             _stricmp
    - functionName:    compare_fingerprint_all
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1448
      functionLinenumberEnd: 1457
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          84
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - compare_fingerprint
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1449,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1450,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1451,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1452,6'
          Dst:             compare_fingerprint
        - Src:             'libfreerdp/crypto/tls.c:1454,6'
          Dst:             compare_fingerprint
    - functionName:    tls_print_certificate_error
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2055
      functionLinenumberEnd: 2068
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_certificate_store_get_cert_path
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:2056,15'
          Dst:             freerdp_certificate_store_get_cert_path
        - Src:             'libfreerdp/crypto/tls.c:2058,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2059,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2060,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2061,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2063,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2064,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2065,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    tls_print_new_certificate_warn
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2032
      functionLinenumberEnd: 2050
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_certificate_store_get_cert_path
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:2033,15'
          Dst:             freerdp_certificate_store_get_cert_path
        - Src:             'libfreerdp/crypto/tls.c:2035,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2036,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2037,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2038,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2039,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2040,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2041,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2042,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2043,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2044,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2045,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2047,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    tls_print_certificate_name_mismatch_error
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2073
      functionLinenumberEnd: 2097
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          123
      EdgeCount:       34
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:2074,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:2075,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2076,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2077,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2078,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2079,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2081,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2082,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2086,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:2087,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2091,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:2092,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:2096,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    tls_config_check_certificate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1615
      functionLinenumberEnd: 1661
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          118
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_JSON_Delete
        - WLog_Print_dbg_tag
        - freerdp_GetJSONConfigFile
        - tls_config_check_allowed_hashed
        - tls_config_parse_bool
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1616,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1617,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1621,21'
          Dst:             freerdp_GetJSONConfigFile
        - Src:             'libfreerdp/crypto/tls.c:1625,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1629,6'
          Dst:             tls_config_parse_bool
        - Src:             'libfreerdp/crypto/tls.c:1631,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1636,6'
          Dst:             tls_config_parse_bool
        - Src:             'libfreerdp/crypto/tls.c:1638,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1643,6'
          Dst:             tls_config_check_allowed_hashed
        - Src:             'libfreerdp/crypto/tls.c:1645,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1650,6'
          Dst:             tls_config_parse_bool
        - Src:             'libfreerdp/crypto/tls.c:1652,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1660,2'
          Dst:             WINPR_JSON_Delete
    - functionName:    tls_match_hostname
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1335
      functionLinenumberEnd: 1364
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          182
      EdgeCount:       48
      CyclomaticComplexity: 11
      functionsReached:
        - _strnicmp
        - strlen
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1336,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1337,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1339,22'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/tls.c:1342,7'
          Dst:             _strnicmp
        - Src:             'libfreerdp/crypto/tls.c:1360,10'
          Dst:             _strnicmp
    - functionName:    accept_cert
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1496
      functionLinenumberEnd: 1527
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          146
      EdgeCount:       43
      CyclomaticComplexity: 6
      functionsReached:
        - freerdp_certificate_get_pem_ex
        - freerdp_settings_set_string_len
        - freerdp_settings_set_uint32
        - is_redirected
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1497,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1498,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1499,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1505,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1512,11'
          Dst:             is_redirected
        - Src:             'libfreerdp/crypto/tls.c:1519,14'
          Dst:             freerdp_certificate_get_pem_ex
        - Src:             'libfreerdp/crypto/tls.c:1523,7'
          Dst:             freerdp_settings_set_string_len
        - Src:             'libfreerdp/crypto/tls.c:1524,9'
          Dst:             freerdp_settings_set_uint32
    - functionName:    is_redirected
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1367
      functionLinenumberEnd: 1377
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_accepted_fingerprint
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1461
      functionLinenumberEnd: 1492
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          97
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - _strdup
        - compare_fingerprint_all
        - strlen
        - strtok_s
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1462,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1468,16'
          Dst:             _strdup
        - Src:             'libfreerdp/crypto/tls.c:1469,15'
          Dst:             strtok_s
        - Src:             'libfreerdp/crypto/tls.c:1473,20'
          Dst:             strtok_s
        - Src:             'libfreerdp/crypto/tls.c:1479,26'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/tls.c:1480,9'
          Dst:             compare_fingerprint_all
        - Src:             'libfreerdp/crypto/tls.c:1487,10'
          Dst:             strtok_s
    - functionName:    is_accepted
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1380
      functionLinenumberEnd: 1426
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         55
      ICount:          223
      EdgeCount:       65
      CyclomaticComplexity: 12
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_certificate_get_pem_ex
        - freerdp_settings_get_string
        - freerdp_settings_get_uint32
        - freerdp_settings_set_string
        - freerdp_settings_set_uint32
        - is_redirected
        - memcmp
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1381,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1383,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1385,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1395,11'
          Dst:             is_redirected
        - Src:             'libfreerdp/crypto/tls.c:1401,28'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/crypto/tls.c:1402,35'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/crypto/tls.c:1408,15'
          Dst:             freerdp_certificate_get_pem_ex
        - Src:             'libfreerdp/crypto/tls.c:1411,8'
          Dst:             memcmp
        - Src:             'libfreerdp/crypto/tls.c:1419,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/crypto/tls.c:1420,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1422,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/crypto/tls.c:1423,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    tls_extract_full_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1532
      functionLinenumberEnd: 1537
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_certificate_get_pem
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1535,22'
          Dst:             freerdp_certificate_get_pem
    - functionName:    BIO_get_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/../core/tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/../core/tcp.h:70,9'
          Dst:             BIO_ctrl
    - functionName:    bio_rdp_tls_callback_ctrl
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          79
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - BIO_callback_ctrl
        - BIO_get_data
        - SSL_get_rbio
        - SSL_set_info_callback
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/tls.c:551,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:546,35'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/crypto/tls.c:562,4'
          Dst:             SSL_set_info_callback
        - Src:             'libfreerdp/crypto/tls.c:568,31'
          Dst:             SSL_get_rbio
        - Src:             'libfreerdp/crypto/tls.c:568,13'
          Dst:             BIO_callback_ctrl
    - functionName:    SSL_set_info_callback
      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:    SSL_get_rbio
      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:    bio_rdp_tls_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 509
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          89
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - BIO_get_data
        - BIO_get_init
        - BIO_get_shutdown
        - BIO_set_data
        - BIO_set_flags
        - BIO_set_init
        - DeleteCriticalSection
        - SSL_free
        - SSL_shutdown
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:515,22'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/crypto/tls.c:520,2'
          Dst:             BIO_set_data
        - Src:             'libfreerdp/crypto/tls.c:521,6'
          Dst:             BIO_get_shutdown
        - Src:             'libfreerdp/crypto/tls.c:523,7'
          Dst:             BIO_get_init
        - Src:             'libfreerdp/crypto/tls.c:525,4'
          Dst:             SSL_shutdown
        - Src:             'libfreerdp/crypto/tls.c:526,4'
          Dst:             SSL_free
        - Src:             'libfreerdp/crypto/tls.c:529,3'
          Dst:             BIO_set_init
        - Src:             'libfreerdp/crypto/tls.c:530,3'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/crypto/tls.c:533,2'
          Dst:             DeleteCriticalSection
    - functionName:    SSL_shutdown
      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:    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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bio_rdp_tls_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 506
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_set_data
        - BIO_set_flags
        - InitializeCriticalSectionAndSpinCount
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:493,2'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/crypto/tls.c:495,14'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/tls.c:498,7'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'libfreerdp/crypto/tls.c:504,2'
          Dst:             BIO_set_data
    - functionName:    bio_rdp_tls_ctrl
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 488
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         95
      ICount:          566
      EdgeCount:       117
      CyclomaticComplexity: 24
      functionsReached:
        - BIO_clear_flags
        - BIO_copy_next_retry
        - BIO_ctrl
        - BIO_free_all
        - BIO_get_data
        - BIO_get_retry_reason
        - BIO_get_shutdown
        - BIO_next
        - BIO_push
        - BIO_set_flags
        - BIO_set_init
        - BIO_set_next
        - BIO_set_retry_reason
        - BIO_set_shutdown
        - BIO_up_ref
        - SSL_clear
        - SSL_do_handshake
        - SSL_get_error
        - SSL_get_info_callback
        - SSL_get_rbio
        - SSL_get_wbio
        - SSL_in_init
        - SSL_is_server
        - SSL_pending
        - SSL_set_accept_state
        - SSL_set_bio
        - SSL_set_connect_state
        - SSL_shutdown
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/tls.c:286,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/crypto/tls.c:459,5'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:274,35'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/crypto/tls.c:282,13'
          Dst:             BIO_next
        - Src:             'libfreerdp/crypto/tls.c:283,24'
          Dst:             SSL_get_rbio
        - Src:             'libfreerdp/crypto/tls.c:284,24'
          Dst:             SSL_get_wbio
        - Src:             'libfreerdp/crypto/tls.c:289,4'
          Dst:             SSL_shutdown
        - Src:             'libfreerdp/crypto/tls.c:291,8'
          Dst:             SSL_in_init
        - Src:             'libfreerdp/crypto/tls.c:291,8'
          Dst:             SSL_is_server
        - Src:             'libfreerdp/crypto/tls.c:292,5'
          Dst:             SSL_set_connect_state
        - Src:             'libfreerdp/crypto/tls.c:293,13'
          Dst:             SSL_in_init
        - Src:             'libfreerdp/crypto/tls.c:293,13'
          Dst:             SSL_is_server
        - Src:             'libfreerdp/crypto/tls.c:294,5'
          Dst:             SSL_set_accept_state
        - Src:             'libfreerdp/crypto/tls.c:296,4'
          Dst:             SSL_clear
        - Src:             'libfreerdp/crypto/tls.c:299,14'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/crypto/tls.c:301,14'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/crypto/tls.c:308,13'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/crypto/tls.c:326,18'
          Dst:             SSL_get_info_callback
        - Src:             'libfreerdp/crypto/tls.c:334,5'
          Dst:             SSL_set_connect_state
        - Src:             'libfreerdp/crypto/tls.c:336,5'
          Dst:             SSL_set_accept_state
        - Src:             'libfreerdp/crypto/tls.c:342,13'
          Dst:             BIO_get_shutdown
        - Src:             'libfreerdp/crypto/tls.c:346,4'
          Dst:             BIO_set_shutdown
        - Src:             'libfreerdp/crypto/tls.c:351,13'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/crypto/tls.c:355,13'
          Dst:             SSL_pending
        - Src:             'libfreerdp/crypto/tls.c:358,14'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/crypto/tls.c:363,4'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/crypto/tls.c:364,13'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/crypto/tls.c:366,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:367,4'
          Dst:             BIO_copy_next_retry
        - Src:             'libfreerdp/crypto/tls.c:383,5'
          Dst:             BIO_up_ref
        - Src:             'libfreerdp/crypto/tls.c:384,5'
          Dst:             SSL_set_bio
        - Src:             'libfreerdp/crypto/tls.c:397,6'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/crypto/tls.c:408,5'
          Dst:             SSL_set_bio
        - Src:             'libfreerdp/crypto/tls.c:425,4'
          Dst:             BIO_set_shutdown
        - Src:             'libfreerdp/crypto/tls.c:430,16'
          Dst:             SSL_get_rbio
        - Src:             'libfreerdp/crypto/tls.c:436,6'
          Dst:             BIO_push
        - Src:             'libfreerdp/crypto/tls.c:438,5'
          Dst:             BIO_set_next
        - Src:             'libfreerdp/crypto/tls.c:443,5'
          Dst:             BIO_up_ref
        - Src:             'libfreerdp/crypto/tls.c:447,4'
          Dst:             BIO_set_init
        - Src:             'libfreerdp/crypto/tls.c:452,4'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/crypto/tls.c:453,4'
          Dst:             BIO_set_retry_reason
        - Src:             'libfreerdp/crypto/tls.c:454,13'
          Dst:             SSL_do_handshake
        - Src:             'libfreerdp/crypto/tls.c:459,13'
          Dst:             SSL_get_error
        - Src:             'libfreerdp/crypto/tls.c:462,7'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/crypto/tls.c:466,7'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/crypto/tls.c:470,7'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/crypto/tls.c:471,33'
          Dst:             BIO_get_retry_reason
        - Src:             'libfreerdp/crypto/tls.c:471,7'
          Dst:             BIO_set_retry_reason
        - Src:             'libfreerdp/crypto/tls.c:475,7'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/crypto/tls.c:483,13'
          Dst:             BIO_ctrl
    - functionName:    SSL_get_wbio
      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:    SSL_in_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_is_server
      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:    SSL_set_connect_state
      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:    SSL_set_accept_state
      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:    SSL_clear
      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:    SSL_get_info_callback
      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:    SSL_pending
      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:    BIO_copy_next_retry
      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:    BIO_up_ref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_set_next
      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:    BIO_set_retry_reason
      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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_do_handshake
      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:    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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_get_retry_reason
      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:    bio_rdp_tls_gets
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bio_rdp_tls_puts
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_write
        - ERR_clear_error
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:255,22'
          Dst:             strnlen
        - Src:             'libfreerdp/crypto/tls.c:258,2'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/crypto/tls.c:259,9'
          Dst:             BIO_write
    - functionName:    bio_rdp_tls_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          144
      EdgeCount:       25
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - BIO_set_flags
        - BIO_set_retry_reason
        - EnterCriticalSection
        - LeaveCriticalSection
        - SSL_get_error
        - SSL_read
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/tls.c:193,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:179,35'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/crypto/tls.c:184,2'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/crypto/tls.c:185,2'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/crypto/tls.c:186,11'
          Dst:             SSL_read
        - Src:             'libfreerdp/crypto/tls.c:187,10'
          Dst:             SSL_get_error
        - Src:             'libfreerdp/crypto/tls.c:188,2'
          Dst:             LeaveCriticalSection
        - Src:             'libfreerdp/crypto/tls.c:196,5'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/crypto/tls.c:200,5'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/crypto/tls.c:204,5'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/crypto/tls.c:208,5'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/crypto/tls.c:209,5'
          Dst:             BIO_set_retry_reason
        - Src:             'libfreerdp/crypto/tls.c:213,5'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/crypto/tls.c:214,5'
          Dst:             BIO_set_retry_reason
        - Src:             'libfreerdp/crypto/tls.c:218,5'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/crypto/tls.c:219,5'
          Dst:             BIO_set_retry_reason
        - Src:             'libfreerdp/crypto/tls.c:223,5'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/crypto/tls.c:227,5'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/crypto/tls.c:231,5'
          Dst:             BIO_clear_flags
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bio_rdp_tls_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          130
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - BIO_set_flags
        - BIO_set_retry_reason
        - EnterCriticalSection
        - LeaveCriticalSection
        - SSL_get_error
        - SSL_write
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/tls.c:136,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:123,35'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/crypto/tls.c:128,2'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/crypto/tls.c:129,2'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/crypto/tls.c:130,11'
          Dst:             SSL_write
        - Src:             'libfreerdp/crypto/tls.c:131,10'
          Dst:             SSL_get_error
        - Src:             'libfreerdp/crypto/tls.c:132,2'
          Dst:             LeaveCriticalSection
        - Src:             'libfreerdp/crypto/tls.c:139,5'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/crypto/tls.c:143,5'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/crypto/tls.c:147,5'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/crypto/tls.c:151,5'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/crypto/tls.c:152,5'
          Dst:             BIO_set_retry_reason
        - Src:             'libfreerdp/crypto/tls.c:156,5'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/crypto/tls.c:157,5'
          Dst:             BIO_set_retry_reason
        - Src:             'libfreerdp/crypto/tls.c:161,5'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/crypto/tls.c:165,5'
          Dst:             BIO_clear_flags
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_s_rdp_tls
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_meth_new
        - BIO_meth_set_callback_ctrl
        - BIO_meth_set_create
        - BIO_meth_set_ctrl
        - BIO_meth_set_destroy
        - BIO_meth_set_gets
        - BIO_meth_set_puts
        - BIO_meth_set_read
        - BIO_meth_set_write
        - bio_rdp_tls_callback_ctrl
        - bio_rdp_tls_ctrl
        - bio_rdp_tls_free
        - bio_rdp_tls_gets
        - bio_rdp_tls_new
        - bio_rdp_tls_puts
        - bio_rdp_tls_read
        - bio_rdp_tls_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:583,23'
          Dst:             BIO_meth_new
        - Src:             'libfreerdp/crypto/tls.c:586,3'
          Dst:             BIO_meth_set_write
        - Src:             'libfreerdp/crypto/tls.c:586,3'
          Dst:             bio_rdp_tls_write
        - Src:             'libfreerdp/crypto/tls.c:587,3'
          Dst:             BIO_meth_set_read
        - Src:             'libfreerdp/crypto/tls.c:587,3'
          Dst:             bio_rdp_tls_read
        - Src:             'libfreerdp/crypto/tls.c:588,3'
          Dst:             BIO_meth_set_puts
        - Src:             'libfreerdp/crypto/tls.c:588,3'
          Dst:             bio_rdp_tls_puts
        - Src:             'libfreerdp/crypto/tls.c:589,3'
          Dst:             BIO_meth_set_gets
        - Src:             'libfreerdp/crypto/tls.c:589,3'
          Dst:             bio_rdp_tls_gets
        - Src:             'libfreerdp/crypto/tls.c:590,3'
          Dst:             BIO_meth_set_ctrl
        - Src:             'libfreerdp/crypto/tls.c:590,3'
          Dst:             bio_rdp_tls_ctrl
        - Src:             'libfreerdp/crypto/tls.c:591,3'
          Dst:             BIO_meth_set_create
        - Src:             'libfreerdp/crypto/tls.c:591,3'
          Dst:             bio_rdp_tls_new
        - Src:             'libfreerdp/crypto/tls.c:592,3'
          Dst:             BIO_meth_set_destroy
        - Src:             'libfreerdp/crypto/tls.c:592,3'
          Dst:             bio_rdp_tls_free
        - Src:             'libfreerdp/crypto/tls.c:593,3'
          Dst:             BIO_meth_set_callback_ctrl
        - Src:             'libfreerdp/crypto/tls.c:593,3'
          Dst:             bio_rdp_tls_callback_ctrl
    - functionName:    BIO_meth_set_callback_ctrl
      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:    SSLCTX_keylog_cb
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 730
      functionLinenumberEnd: 747
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - SSL_get_ex_data
        - fclose
        - fwrite
        - strlen
        - winpr_fopen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:736,10'
          Dst:             SSL_get_ex_data
        - Src:             'libfreerdp/crypto/tls.c:739,13'
          Dst:             winpr_fopen
        - Src:             'libfreerdp/crypto/tls.c:742,23'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/tls.c:742,10'
          Dst:             fwrite
        - Src:             'libfreerdp/crypto/tls.c:743,10'
          Dst:             fwrite
        - Src:             'libfreerdp/crypto/tls.c:744,10'
          Dst:             fclose
    - functionName:    secrets_file_init_cb
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 723
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - CRYPTO_get_ex_new_index
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:724,21'
          Dst:             CRYPTO_get_ex_new_index
    - functionName:    CRYPTO_get_ex_new_index
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_new_rdp_tls
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 600
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - BIO_ctrl
        - BIO_free_all
        - BIO_new
        - BIO_s_rdp_tls
        - SSL_new
        - SSL_set_accept_state
        - SSL_set_connect_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:603,16'
          Dst:             BIO_s_rdp_tls
        - Src:             'libfreerdp/crypto/tls.c:603,8'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/tls.c:608,8'
          Dst:             SSL_new
        - Src:             'libfreerdp/crypto/tls.c:612,3'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/crypto/tls.c:617,3'
          Dst:             SSL_set_connect_state
        - Src:             'libfreerdp/crypto/tls.c:619,3'
          Dst:             SSL_set_accept_state
        - Src:             'libfreerdp/crypto/tls.c:621,2'
          Dst:             BIO_ctrl
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tls_reset
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 750
      functionLinenumberEnd: 770
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          86
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - BIO_free_all
        - SSL_CTX_free
        - free_tls_bindings
        - free_tls_public_key
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:751,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:755,3'
          Dst:             SSL_CTX_free
        - Src:             'libfreerdp/crypto/tls.c:762,3'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/crypto/tls.c:764,3'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/crypto/tls.c:768,2'
          Dst:             free_tls_public_key
        - Src:             'libfreerdp/crypto/tls.c:769,2'
          Dst:             free_tls_bindings
    - functionName:    free_tls_public_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:102,2'
          Dst:             winpr_int_assert
    - functionName:    free_tls_bindings
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          51
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:110,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_tls_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2126
      functionLinenumberEnd: 2139
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_certificate_store_free
        - tls_reset
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:2130,2'
          Dst:             tls_reset
        - Src:             'libfreerdp/crypto/tls.c:2134,3'
          Dst:             freerdp_certificate_store_free
    - functionName:    freerdp_tls_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2100
      functionLinenumberEnd: 2123
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          79
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - freerdp_certificate_store_new
        - freerdp_settings_get_bool
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:2102,17'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/tls.c:2109,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/crypto/tls.c:2111,28'
          Dst:             freerdp_certificate_store_new
    - functionName:    freerdp_tls_set_alert_code
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1326
      functionLinenumberEnd: 1330
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1327,2'
          Dst:             winpr_int_assert
    - functionName:    BIO_read_blocked
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/../core/tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/../core/tcp.h:86,9'
          Dst:             BIO_ctrl
    - functionName:    BIO_wait_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/../core/tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/../core/tcp.h:103,9'
          Dst:             BIO_ctrl
    - functionName:    BIO_write_blocked
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/../core/tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/../core/tcp.h:92,9'
          Dst:             BIO_ctrl
    - functionName:    freerdp_tls_write_all
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1289
      functionLinenumberEnd: 1323
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          135
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - BIO_read_blocked
        - BIO_test_flags
        - BIO_wait_write
        - BIO_write
        - BIO_write_blocked
        - ERR_clear_error
        - USleep
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1290,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1299,3'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/crypto/tls.c:1300,22'
          Dst:             BIO_write
        - Src:             'libfreerdp/crypto/tls.c:1306,9'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/crypto/tls.c:1309,8'
          Dst:             BIO_write_blocked
        - Src:             'libfreerdp/crypto/tls.c:1311,21'
          Dst:             BIO_wait_write
        - Src:             'libfreerdp/crypto/tls.c:1315,13'
          Dst:             BIO_read_blocked
        - Src:             'libfreerdp/crypto/tls.c:1318,5'
          Dst:             USleep
    - functionName:    freerdp_tls_accept_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1123
      functionLinenumberEnd: 1239
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          200
      EdgeCount:       42
      CyclomaticComplexity: 10
      functionsReached:
        - EVP_PKEY_free
        - SSL_ctrl
        - SSL_use_PrivateKey
        - SSL_use_certificate
        - WLog_Print_dbg_tag
        - freerdp_certificate_get_chain_at
        - freerdp_certificate_get_chain_len
        - freerdp_certificate_get_x509
        - freerdp_key_get_evp_pkey
        - freerdp_settings_get_pointer
        - freerdp_settings_get_pointer_writable
        - freerdp_tls_handshake
        - tls_prepare
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1124,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1174,7'
          Dst:             tls_prepare
        - Src:             'libfreerdp/crypto/tls.c:1177,29'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/crypto/tls.c:1180,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1184,22'
          Dst:             freerdp_key_get_evp_pkey
        - Src:             'libfreerdp/crypto/tls.c:1187,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1191,11'
          Dst:             SSL_use_PrivateKey
        - Src:             'libfreerdp/crypto/tls.c:1196,2'
          Dst:             EVP_PKEY_free
        - Src:             'libfreerdp/crypto/tls.c:1200,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1205,6'
          Dst:             freerdp_settings_get_pointer_writable
        - Src:             'libfreerdp/crypto/tls.c:1208,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1212,41'
          Dst:             freerdp_certificate_get_x509
        - Src:             'libfreerdp/crypto/tls.c:1212,11'
          Dst:             SSL_use_certificate
        - Src:             'libfreerdp/crypto/tls.c:1216,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1220,21'
          Dst:             freerdp_certificate_get_chain_len
        - Src:             'libfreerdp/crypto/tls.c:1223,17'
          Dst:             freerdp_certificate_get_chain_at
        - Src:             'libfreerdp/crypto/tls.c:1224,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1225,19'
          Dst:             SSL_ctrl
        - Src:             'libfreerdp/crypto/tls.c:1228,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1238,9'
          Dst:             freerdp_tls_handshake
    - functionName:    tls_prepare
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 779
      functionLinenumberEnd: 858
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         84
      ICount:          400
      EdgeCount:       101
      CyclomaticComplexity: 19
      functionsReached:
        - BIO_ctrl
        - BIO_new_rdp_tls
        - BIO_push
        - SSLCTX_keylog_cb
        - SSL_CTX_ctrl
        - SSL_CTX_new
        - SSL_CTX_set_cipher_list
        - SSL_CTX_set_keylog_callback
        - SSL_CTX_set_options
        - SSL_CTX_set_security_level
        - SSL_set_ex_data
        - WLog_Print_dbg_tag
        - freerdp_settings_get_uint16
        - secrets_file_init_cb
        - tls_reset
        - winpr_InitOnceExecuteOnce
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:780,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:783,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:785,2'
          Dst:             tls_reset
        - Src:             'libfreerdp/crypto/tls.c:786,13'
          Dst:             SSL_CTX_new
        - Src:             'libfreerdp/crypto/tls.c:792,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:796,2'
          Dst:             SSL_CTX_ctrl
        - Src:             'libfreerdp/crypto/tls.c:797,32'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:797,32'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:797,2'
          Dst:             SSL_CTX_set_options
        - Src:             'libfreerdp/crypto/tls.c:798,2'
          Dst:             SSL_CTX_ctrl
        - Src:             'libfreerdp/crypto/tls.c:800,19'
          Dst:             freerdp_settings_get_uint16
        - Src:             'libfreerdp/crypto/tls.c:801,7'
          Dst:             SSL_CTX_ctrl
        - Src:             'libfreerdp/crypto/tls.c:803,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:806,12'
          Dst:             freerdp_settings_get_uint16
        - Src:             'libfreerdp/crypto/tls.c:807,7'
          Dst:             SSL_CTX_ctrl
        - Src:             'libfreerdp/crypto/tls.c:809,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:814,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:814,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:814,2'
          Dst:             SSL_CTX_set_security_level
        - Src:             'libfreerdp/crypto/tls.c:819,8'
          Dst:             SSL_CTX_set_cipher_list
        - Src:             'libfreerdp/crypto/tls.c:821,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:826,13'
          Dst:             BIO_new_rdp_tls
        - Src:             'libfreerdp/crypto/tls.c:830,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:834,6'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/crypto/tls.c:836,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:843,8'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'libfreerdp/crypto/tls.c:843,8'
          Dst:             secrets_file_init_cb
        - Src:             'libfreerdp/crypto/tls.c:848,4'
          Dst:             SSL_set_ex_data
        - Src:             'libfreerdp/crypto/tls.c:849,4'
          Dst:             SSL_CTX_set_keylog_callback
        - Src:             'libfreerdp/crypto/tls.c:849,4'
          Dst:             SSLCTX_keylog_cb
        - Src:             'libfreerdp/crypto/tls.c:856,2'
          Dst:             BIO_push
    - functionName:    SSL_use_PrivateKey
      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:    SSL_use_certificate
      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:    freerdp_tls_handshake
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 948
      functionLinenumberEnd: 1013
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          191
      EdgeCount:       49
      CyclomaticComplexity: 10
      functionsReached:
        - BIO_ctrl
        - BIO_test_flags
        - ERR_print_errors_cb
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - bio_err_print
        - free_tls_bindings
        - free_tls_public_key
        - freerdp_certificate_free
        - freerdp_certificate_get_public_key
        - freerdp_tls_send_alert
        - tls_get_certificate
        - tls_get_channel_bindings
        - tls_get_server_name
        - tls_verify_certificate
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:951,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:952,22'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/crypto/tls.c:955,8'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/crypto/tls.c:957,16'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/tls.c:958,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/tls.c:958,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/crypto/tls.c:959,4'
          Dst:             ERR_print_errors_cb
        - Src:             'libfreerdp/crypto/tls.c:959,4'
          Dst:             bio_err_print
        - Src:             'libfreerdp/crypto/tls.c:967,25'
          Dst:             tls_get_certificate
        - Src:             'libfreerdp/crypto/tls.c:971,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:977,3'
          Dst:             free_tls_bindings
        - Src:             'libfreerdp/crypto/tls.c:978,19'
          Dst:             tls_get_channel_bindings
        - Src:             'libfreerdp/crypto/tls.c:981,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:985,3'
          Dst:             free_tls_public_key
        - Src:             'libfreerdp/crypto/tls.c:986,8'
          Dst:             freerdp_certificate_get_public_key
        - Src:             'libfreerdp/crypto/tls.c:988,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:998,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1000,42'
          Dst:             tls_get_server_name
        - Src:             'libfreerdp/crypto/tls.c:1000,8'
          Dst:             tls_verify_certificate
        - Src:             'libfreerdp/crypto/tls.c:1004,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1005,5'
          Dst:             freerdp_tls_send_alert
        - Src:             'libfreerdp/crypto/tls.c:1011,2'
          Dst:             freerdp_certificate_free
    - functionName:    bio_err_print
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 941
      functionLinenumberEnd: 944
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:943,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/tls.c:943,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    tls_get_certificate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 646
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - SSL_get_certificate
        - SSL_get_peer_cert_chain
        - SSL_get_peer_certificate
        - WLog_Print_dbg_tag
        - X509_dup
        - X509_free
        - freerdp_certificate_new_from_x509
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:630,17'
          Dst:             SSL_get_peer_certificate
        - Src:             'libfreerdp/crypto/tls.c:632,26'
          Dst:             SSL_get_certificate
        - Src:             'libfreerdp/crypto/tls.c:632,17'
          Dst:             X509_dup
        - Src:             'libfreerdp/crypto/tls.c:636,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:641,26'
          Dst:             SSL_get_peer_cert_chain
        - Src:             'libfreerdp/crypto/tls.c:642,25'
          Dst:             freerdp_certificate_new_from_x509
        - Src:             'libfreerdp/crypto/tls.c:643,2'
          Dst:             X509_free
    - functionName:    tls_get_channel_bindings
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 656
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          172
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - freerdp_certificate_get_hash
        - freerdp_certificate_get_signature_alg
        - strnlen
        - winpr_int_assert
        - winpr_md_type_to_string
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/tls.c:667,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:660,30'
          Dst:             strnlen
        - Src:             'libfreerdp/crypto/tls.c:662,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:665,22'
          Dst:             freerdp_certificate_get_signature_alg
        - Src:             'libfreerdp/crypto/tls.c:672,11'
          Dst:             winpr_md_type_to_string
        - Src:             'libfreerdp/crypto/tls.c:675,11'
          Dst:             winpr_md_type_to_string
        - Src:             'libfreerdp/crypto/tls.c:681,26'
          Dst:             freerdp_certificate_get_hash
        - Src:             'libfreerdp/crypto/tls.c:686,44'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/tls.c:698,43'
          Dst:             calloc
    - functionName:    tls_get_server_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 649
      functionLinenumberEnd: 650
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tls_verify_certificate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1666
      functionLinenumberEnd: 2028
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         201
      ICount:          1142
      EdgeCount:       259
      CyclomaticComplexity: 60
      functionsReached:
        - WLog_Print_dbg_tag
        - accept_cert
        - freerdp_certificate_data_free
        - freerdp_certificate_data_get_fingerprint
        - freerdp_certificate_data_get_issuer
        - freerdp_certificate_data_get_pem
        - freerdp_certificate_data_get_subject
        - freerdp_certificate_data_new
        - freerdp_certificate_free_dns_names
        - freerdp_certificate_get_common_name
        - freerdp_certificate_get_dns_names
        - freerdp_certificate_get_fingerprint
        - freerdp_certificate_get_issuer
        - freerdp_certificate_get_pem
        - freerdp_certificate_get_subject
        - freerdp_certificate_store_contains_data
        - freerdp_certificate_store_get_certs_path
        - freerdp_certificate_store_load_data
        - freerdp_certificate_store_save_data
        - freerdp_certificate_verify
        - freerdp_settings_get_bool
        - freerdp_shall_disconnect_context
        - is_accepted
        - is_accepted_fingerprint
        - is_redirected
        - tls_config_check_certificate
        - tls_extract_full_pem
        - tls_match_hostname
        - tls_print_certificate_error
        - tls_print_certificate_name_mismatch_error
        - tls_print_new_certificate_warn
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/tls.c:1991,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1681,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1684,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1687,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1690,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1692,6'
          Dst:             freerdp_shall_disconnect_context
        - Src:             'libfreerdp/crypto/tls.c:1695,7'
          Dst:             tls_extract_full_pem
        - Src:             'libfreerdp/crypto/tls.c:1699,6'
          Dst:             is_accepted
        - Src:             'libfreerdp/crypto/tls.c:1705,6'
          Dst:             is_accepted_fingerprint
        - Src:             'libfreerdp/crypto/tls.c:1711,33'
          Dst:             is_redirected
        - Src:             'libfreerdp/crypto/tls.c:1717,6'
          Dst:             is_redirected
        - Src:             'libfreerdp/crypto/tls.c:1727,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1730,4'
          Dst:             accept_cert
        - Src:             'libfreerdp/crypto/tls.c:1733,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1739,11'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/crypto/tls.c:1741,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1742,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1743,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1757,13'
          Dst:             freerdp_certificate_store_get_certs_path
        - Src:             'libfreerdp/crypto/tls.c:1756,24'
          Dst:             freerdp_certificate_verify
        - Src:             'libfreerdp/crypto/tls.c:1759,22'
          Dst:             freerdp_certificate_data_new
        - Src:             'libfreerdp/crypto/tls.c:1763,17'
          Dst:             freerdp_certificate_get_common_name
        - Src:             'libfreerdp/crypto/tls.c:1764,15'
          Dst:             freerdp_certificate_get_dns_names
        - Src:             'libfreerdp/crypto/tls.c:1770,8'
          Dst:             tls_match_hostname
        - Src:             'libfreerdp/crypto/tls.c:1780,9'
          Dst:             tls_match_hostname
        - Src:             'libfreerdp/crypto/tls.c:1798,26'
          Dst:             tls_config_check_certificate
        - Src:             'libfreerdp/crypto/tls.c:1806,19'
          Dst:             freerdp_certificate_get_issuer
        - Src:             'libfreerdp/crypto/tls.c:1807,20'
          Dst:             freerdp_certificate_get_subject
        - Src:             'libfreerdp/crypto/tls.c:1808,16'
          Dst:             freerdp_certificate_get_pem
        - Src:             'libfreerdp/crypto/tls.c:1815,8'
          Dst:             freerdp_certificate_store_contains_data
        - Src:             'libfreerdp/crypto/tls.c:1822,6'
          Dst:             tls_print_certificate_name_mismatch_error
        - Src:             'libfreerdp/crypto/tls.c:1827,10'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/crypto/tls.c:1830,10'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/crypto/tls.c:1833,10'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/crypto/tls.c:1836,18'
          Dst:             freerdp_certificate_get_fingerprint
        - Src:             'libfreerdp/crypto/tls.c:1837,6'
          Dst:             tls_print_new_certificate_warn
        - Src:             'libfreerdp/crypto/tls.c:1850,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1855,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1873,10'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/crypto/tls.c:1882,12'
          Dst:             freerdp_certificate_get_fingerprint
        - Src:             'libfreerdp/crypto/tls.c:1891,17'
          Dst:             freerdp_certificate_get_fingerprint
        - Src:             'libfreerdp/crypto/tls.c:1893,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1904,9'
          Dst:             freerdp_certificate_store_load_data
        - Src:             'libfreerdp/crypto/tls.c:1908,18'
          Dst:             freerdp_certificate_get_fingerprint
        - Src:             'libfreerdp/crypto/tls.c:1909,6'
          Dst:             tls_print_certificate_error
        - Src:             'libfreerdp/crypto/tls.c:1915,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1920,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1939,32'
          Dst:             freerdp_certificate_data_get_subject
        - Src:             'libfreerdp/crypto/tls.c:1940,31'
          Dst:             freerdp_certificate_data_get_issuer
        - Src:             'libfreerdp/crypto/tls.c:1941,27'
          Dst:             freerdp_certificate_data_get_fingerprint
        - Src:             'libfreerdp/crypto/tls.c:1942,28'
          Dst:             freerdp_certificate_data_get_pem
        - Src:             'libfreerdp/crypto/tls.c:1945,11'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/crypto/tls.c:1955,12'
          Dst:             freerdp_certificate_get_fingerprint
        - Src:             'libfreerdp/crypto/tls.c:1966,17'
          Dst:             freerdp_certificate_get_fingerprint
        - Src:             'libfreerdp/crypto/tls.c:1967,32'
          Dst:             freerdp_certificate_data_get_subject
        - Src:             'libfreerdp/crypto/tls.c:1968,31'
          Dst:             freerdp_certificate_data_get_issuer
        - Src:             'libfreerdp/crypto/tls.c:1970,10'
          Dst:             freerdp_certificate_data_get_fingerprint
        - Src:             'libfreerdp/crypto/tls.c:1972,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1981,5'
          Dst:             freerdp_certificate_data_free
        - Src:             'libfreerdp/crypto/tls.c:1996,28'
          Dst:             freerdp_certificate_store_save_data
        - Src:             'libfreerdp/crypto/tls.c:2019,4'
          Dst:             accept_cert
        - Src:             'libfreerdp/crypto/tls.c:2023,2'
          Dst:             freerdp_certificate_data_free
        - Src:             'libfreerdp/crypto/tls.c:2025,2'
          Dst:             freerdp_certificate_free_dns_names
    - functionName:    freerdp_tls_send_alert
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1242
      functionLinenumberEnd: 1286
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          50
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1243,2'
          Dst:             winpr_int_assert
    - functionName:    SSL_get_peer_certificate
      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:    SSL_get_certificate
      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:    SSL_get_peer_cert_chain
      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:    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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_set_security_level
      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:    SSL_CTX_set_cipher_list
      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:    SSL_CTX_set_keylog_callback
      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:    freerdp_tls_accept
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1102
      functionLinenumberEnd: 1119
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          73
      EdgeCount:       35
      CyclomaticComplexity: 19
      functionsReached:
        - freerdp_tls_accept_ex
        - freerdp_tls_get_ssl_method
        - pollAndHandshake
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/tls.c:1106,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1105,55'
          Dst:             freerdp_tls_get_ssl_method
        - Src:             'libfreerdp/crypto/tls.c:1105,6'
          Dst:             freerdp_tls_accept_ex
        - Src:             'libfreerdp/crypto/tls.c:1118,9'
          Dst:             pollAndHandshake
    - functionName:    freerdp_tls_get_ssl_method
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 871
      functionLinenumberEnd: 891
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - DTLS_client_method
        - DTLS_server_method
        - TLS_client_method
        - TLS_server_method
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:875,11'
          Dst:             DTLS_client_method
        - Src:             'libfreerdp/crypto/tls.c:879,10'
          Dst:             TLS_client_method
        - Src:             'libfreerdp/crypto/tls.c:884,10'
          Dst:             DTLS_server_method
        - Src:             'libfreerdp/crypto/tls.c:889,9'
          Dst:             TLS_server_method
    - functionName:    pollAndHandshake
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1016
      functionLinenumberEnd: 1064
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          134
      EdgeCount:       34
      CyclomaticComplexity: 3
      functionsReached:
        - BIO_get_event
        - WLog_Print_dbg_tag
        - WaitForMultipleObjectsEx
        - freerdp_abort_event
        - freerdp_tls_handshake
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/tls.c:1036,3'
          Branch Sides:    []
        - Branch String:   'libfreerdp/crypto/tls.c:1052,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1017,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1021,23'
          Dst:             freerdp_abort_event
        - Src:             'libfreerdp/crypto/tls.c:1023,7'
          Dst:             BIO_get_event
        - Src:             'libfreerdp/crypto/tls.c:1025,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1031,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1035,12'
          Dst:             WaitForMultipleObjectsEx
        - Src:             'libfreerdp/crypto/tls.c:1041,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1047,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/tls.c:1051,31'
          Dst:             freerdp_tls_handshake
    - functionName:    DTLS_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:    DTLS_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_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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_tls_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1067
      functionLinenumberEnd: 1086
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          70
      EdgeCount:       33
      CyclomaticComplexity: 18
      functionsReached:
        - freerdp_tls_connect_ex
        - freerdp_tls_get_ssl_method
        - pollAndHandshake
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/tls.c:1072,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:1068,29'
          Dst:             freerdp_tls_get_ssl_method
        - Src:             'libfreerdp/crypto/tls.c:1070,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:1071,30'
          Dst:             freerdp_tls_connect_ex
        - Src:             'libfreerdp/crypto/tls.c:1085,9'
          Dst:             pollAndHandshake
    - functionName:    freerdp_tls_connect_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 894
      functionLinenumberEnd: 938
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          84
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - SSL_ctrl
        - adjustSslOptions
        - freerdp_tls_handshake
        - tls_get_server_name
        - tls_prepare
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:895,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/tls.c:926,2'
          Dst:             adjustSslOptions
        - Src:             'libfreerdp/crypto/tls.c:928,7'
          Dst:             tls_prepare
        - Src:             'libfreerdp/crypto/tls.c:932,20'
          Dst:             tls_get_server_name
        - Src:             'libfreerdp/crypto/tls.c:934,2'
          Dst:             SSL_ctrl
        - Src:             'libfreerdp/crypto/tls.c:937,9'
          Dst:             freerdp_tls_handshake
    - functionName:    adjustSslOptions
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 862
      functionLinenumberEnd: 868
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          28
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/tls.c:863,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_get_keyboard_default_layout_for_locale
      functionSourceFile: '/src/FreeRDP/libfreerdp/locale/locale.c'
      linkageType:     InternalLinkage
      functionLinenumber: 886
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_get_system_locale_list
      functionSourceFile: '/src/FreeRDP/libfreerdp/locale/locale.c'
      linkageType:     InternalLinkage
      functionLinenumber: 879
      functionLinenumberEnd: 882
      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:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/locale/locale.c:880,2'
          Dst:             winpr_int_assert
    - functionName:    get_layout_from_locale
      functionSourceFile: '/src/FreeRDP/libfreerdp/locale/locale.c'
      linkageType:     InternalLinkage
      functionLinenumber: 788
      functionLinenumberEnd: 822
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          124
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/locale/locale.c:792,3'
          Dst:             winpr_int_assert
    - functionName:    freerdp_detect_keyboard_layout_from_locale
      functionSourceFile: '/src/FreeRDP/libfreerdp/locale/locale.c'
      linkageType:     InternalLinkage
      functionLinenumber: 863
      functionLinenumberEnd: 876
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          68
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - get_layout_from_locale
        - get_locale_from_str
        - strcmp
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/locale/locale.c:864,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/locale/locale.c:866,7'
          Dst:             strcmp
        - Src:             'libfreerdp/locale/locale.c:866,40'
          Dst:             strcmp
        - Src:             'libfreerdp/locale/locale.c:869,32'
          Dst:             get_locale_from_str
        - Src:             'libfreerdp/locale/locale.c:875,9'
          Dst:             get_layout_from_locale
    - functionName:    get_locale_from_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/locale/locale.c'
      linkageType:     InternalLinkage
      functionLinenumber: 770
      functionLinenumberEnd: 785
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - snprintf
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/locale/locale.c:776,9'
          Dst:             snprintf
        - Src:             'libfreerdp/locale/locale.c:778,8'
          Dst:             strcmp
        - Src:             'libfreerdp/locale/locale.c:781,13'
          Dst:             strcmp
    - functionName:    freerdp_get_system_language_and_country_codes
      functionSourceFile: '/src/FreeRDP/libfreerdp/locale/locale.c'
      linkageType:     InternalLinkage
      functionLinenumber: 643
      functionLinenumberEnd: 733
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          224
      EdgeCount:       53
      CyclomaticComplexity: 9
      functionsReached:
        - GetEnvironmentVariableA
        - strcspn
        - strncpy
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/locale/locale.c:644,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/locale/locale.c:645,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/locale/locale.c:646,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/locale/locale.c:647,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/locale/locale.c:682,11'
          Dst:             GetEnvironmentVariableA
        - Src:             'libfreerdp/locale/locale.c:692,7'
          Dst:             GetEnvironmentVariableA
        - Src:             'libfreerdp/locale/locale.c:699,16'
          Dst:             strcspn
        - Src:             'libfreerdp/locale/locale.c:710,4'
          Dst:             strncpy
        - Src:             'libfreerdp/locale/locale.c:714,9'
          Dst:             strcspn
        - Src:             'libfreerdp/locale/locale.c:720,4'
          Dst:             strncpy
    - 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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_detect_keyboard_layout_from_system_locale
      functionSourceFile: '/src/FreeRDP/libfreerdp/locale/locale.c'
      linkageType:     InternalLinkage
      functionLinenumber: 846
      functionLinenumberEnd: 860
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          120
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - freerdp_detect_keyboard_layout_from_locale
        - freerdp_get_system_language_and_country_codes
        - snprintf
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/locale/locale.c:850,2'
          Dst:             freerdp_get_system_language_and_country_codes
        - Src:             'libfreerdp/locale/locale.c:854,8'
          Dst:             snprintf
        - Src:             'libfreerdp/locale/locale.c:855,21'
          Dst:             freerdp_detect_keyboard_layout_from_locale
        - Src:             'libfreerdp/locale/locale.c:858,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/locale/locale.c:858,22'
          Dst:             winpr_int_assert
    - functionName:    freerdp_get_locale_id_from_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/locale/locale.c'
      linkageType:     InternalLinkage
      functionLinenumber: 838
      functionLinenumberEnd: 843
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - get_locale_from_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/locale/locale.c:839,29'
          Dst:             get_locale_from_str
    - functionName:    freerdp_get_system_locale_name_from_id
      functionSourceFile: '/src/FreeRDP/libfreerdp/locale/locale.c'
      linkageType:     InternalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 835
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_detect_system_locale
      functionSourceFile: '/src/FreeRDP/libfreerdp/locale/locale.c'
      linkageType:     InternalLinkage
      functionLinenumber: 736
      functionLinenumberEnd: 755
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          74
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_get_system_language_and_country_codes
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/locale/locale.c:741,2'
          Dst:             freerdp_get_system_language_and_country_codes
        - Src:             'libfreerdp/locale/locale.c:748,8'
          Dst:             strcmp
        - Src:             'libfreerdp/locale/locale.c:748,54'
          Dst:             strcmp
    - functionName:    freerdp_get_system_locale_id
      functionSourceFile: '/src/FreeRDP/libfreerdp/locale/locale.c'
      linkageType:     InternalLinkage
      functionLinenumber: 759
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_detect_system_locale
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/locale/locale.c:761,11'
          Dst:             freerdp_detect_system_locale
    - functionName:    state_run_continue
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/state.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    state_run_result_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/state.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       23
      CyclomaticComplexity: 13
      functionsReached:
        - snprintf
      functionUses:    7
      BranchProfiles:
        - Branch String:   'libfreerdp/core/state.c:49,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/state.c:77,8'
          Dst:             snprintf
    - functionName:    state_run_success
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/state.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    state_run_failed
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/state.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       10
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    12
      BranchProfiles:
        - Branch String:   'libfreerdp/core/state.c:28,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    Stream_ResetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1358,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    stream_dump_replay_transport_connect_layer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          46
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:416,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:417,2'
          Dst:             winpr_int_assert
    - functionName:    stream_dump_replay_transport_tls_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          28
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:424,2'
          Dst:             winpr_int_assert
    - functionName:    stream_dump_replay_transport_accept
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          28
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:430,2'
          Dst:             winpr_int_assert
    - functionName:    stream_dump_replay_transport_tcp_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          60
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:405,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:406,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:407,2'
          Dst:             winpr_int_assert
    - functionName:    stream_dump_replay_transport_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         55
      ICount:          246
      EdgeCount:       65
      CyclomaticComplexity: 12
      functionsReached:
        - Sleep
        - Stream_GetPosition
        - Stream_Length
        - Stream_ResetPosition
        - Stream_SetPosition
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_dump_get
        - transport_get_context
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:354,20'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/streamdump.c:361,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:362,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:363,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:365,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/streamdump.c:368,8'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/streamdump.c:370,7'
          Dst:             stream_dump_get
        - Src:             'libfreerdp/core/streamdump.c:381,9'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/streamdump.c:382,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/streamdump.c:383,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/streamdump.c:383,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/streamdump.c:391,4'
          Dst:             Sleep
    - functionName:    stream_dump_get
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          257
      EdgeCount:       79
      CyclomaticComplexity: 16
      functionsReached:
        - _fseeki64
        - _ftelli64
        - fclose
        - stream_dump_get_file
        - stream_dump_read_line
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:252,7'
          Dst:             stream_dump_get_file
        - Src:             'libfreerdp/core/streamdump.c:255,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:255,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:255,6'
          Dst:             _fseeki64
        - Src:             'libfreerdp/core/streamdump.c:259,7'
          Dst:             stream_dump_read_line
        - Src:             'libfreerdp/core/streamdump.c:263,22'
          Dst:             _ftelli64
        - Src:             'libfreerdp/core/streamdump.c:266,8'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:266,8'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:271,9'
          Dst:             fclose
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1325,3'
          Dst:             winpr_int_assert
    - functionName:    stream_dump_get_file
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          78
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - GetKnownSubPath
        - _strdup
        - freerdp_settings_get_string
        - winpr_fopen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:181,12'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/streamdump.c:183,10'
          Dst:             GetKnownSubPath
        - Src:             'libfreerdp/core/streamdump.c:185,10'
          Dst:             _strdup
        - Src:             'libfreerdp/core/streamdump.c:190,7'
          Dst:             winpr_fopen
    - 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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:498,9'
          Dst:             fseeko64
    - functionName:    stream_dump_read_line
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         84
      ICount:          362
      EdgeCount:       106
      CyclomaticComplexity: 24
      functionsReached:
        - Stream_ConstPointer
        - Stream_EnsureRemainingCapacity
        - Stream_Pointer
        - Stream_SealLength
        - Stream_Seek
        - _fseeki64
        - _ftelli64
        - crc32b
        - fread
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:83,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:83,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:83,7'
          Dst:             _fseeki64
        - Src:             'libfreerdp/core/streamdump.c:87,6'
          Dst:             fread
        - Src:             'libfreerdp/core/streamdump.c:90,6'
          Dst:             fread
        - Src:             'libfreerdp/core/streamdump.c:93,6'
          Dst:             fread
        - Src:             'libfreerdp/core/streamdump.c:96,6'
          Dst:             fread
        - Src:             'libfreerdp/core/streamdump.c:105,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:105,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:106,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/streamdump.c:108,13'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/streamdump.c:108,7'
          Dst:             fread
        - Src:             'libfreerdp/core/streamdump.c:111,23'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/streamdump.c:111,16'
          Dst:             crc32b
        - Src:             'libfreerdp/core/streamdump.c:113,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/streamdump.c:118,15'
          Dst:             _ftelli64
        - Src:             'libfreerdp/core/streamdump.c:129,2'
          Dst:             Stream_SealLength
    - 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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:504,9'
          Dst:             ftello64
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,3'
          Dst:             winpr_int_assert
    - functionName:    crc32b
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - 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_dump_replay_transport_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          79
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Length
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - transport_get_context
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:339,20'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/streamdump.c:342,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:343,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:345,9'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/streamdump.c:346,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/streamdump.c:346,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    stream_dump_transport_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          132
      EdgeCount:       35
      CyclomaticComplexity: 4
      functionsReached:
        - stream_dump_append
        - transport_get_context
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:296,20'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/streamdump.c:298,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:299,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:300,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:302,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:307,7'
          Dst:             stream_dump_append
    - functionName:    stream_dump_append
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         74
      ICount:          310
      EdgeCount:       92
      CyclomaticComplexity: 20
      functionsReached:
        - _fseeki64
        - _ftelli64
        - fclose
        - freerdp_get_state
        - stream_dump_get_file
        - stream_dump_write_line
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:201,27'
          Dst:             freerdp_get_state
        - Src:             'libfreerdp/core/streamdump.c:216,7'
          Dst:             stream_dump_get_file
        - Src:             'libfreerdp/core/streamdump.c:220,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:220,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:220,6'
          Dst:             _fseeki64
        - Src:             'libfreerdp/core/streamdump.c:224,7'
          Dst:             stream_dump_write_line
        - Src:             'libfreerdp/core/streamdump.c:227,22'
          Dst:             _ftelli64
        - Src:             'libfreerdp/core/streamdump.c:233,8'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:233,8'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:239,9'
          Dst:             fclose
    - functionName:    stream_dump_write_line
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          128
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_Buffer
        - Stream_Length
        - crc32b
        - fwrite
        - winpr_GetTickCount64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:139,19'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/streamdump.c:140,21'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/streamdump.c:141,23'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/streamdump.c:148,24'
          Dst:             crc32b
        - Src:             'libfreerdp/core/streamdump.c:150,14'
          Dst:             fwrite
        - Src:             'libfreerdp/core/streamdump.c:153,7'
          Dst:             fwrite
        - Src:             'libfreerdp/core/streamdump.c:156,7'
          Dst:             fwrite
        - Src:             'libfreerdp/core/streamdump.c:159,7'
          Dst:             fwrite
        - Src:             'libfreerdp/core/streamdump.c:162,7'
          Dst:             fwrite
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    stream_dump_transport_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          120
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - stream_dump_append
        - transport_get_context
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:278,20'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/streamdump.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:281,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:282,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:284,6'
          Dst:             stream_dump_append
        - Src:             'libfreerdp/core/streamdump.c:289,2'
          Dst:             winpr_int_assert
    - functionName:    stream_dump_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Get
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:485,31'
          Dst:             calloc
        - Src:             'libfreerdp/core/streamdump.c:488,14'
          Dst:             WLog_Get
    - functionName:    stream_dump_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_dump_register_read_handlers
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          120
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_get_io_callbacks
        - freerdp_io_callback_set_event
        - freerdp_set_io_callbacks
        - freerdp_settings_get_bool
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:436,30'
          Dst:             freerdp_get_io_callbacks
        - Src:             'libfreerdp/core/streamdump.c:438,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/streamdump.c:441,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:445,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:447,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/streamdump.c:462,7'
          Dst:             freerdp_set_io_callbacks
        - Src:             'libfreerdp/core/streamdump.c:464,9'
          Dst:             freerdp_io_callback_set_event
    - functionName:    stream_dump_register_write_handlers
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_get_io_callbacks
        - freerdp_set_io_callbacks
        - freerdp_settings_get_bool
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:318,30'
          Dst:             freerdp_get_io_callbacks
        - Src:             'libfreerdp/core/streamdump.c:320,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/streamdump.c:323,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:327,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:334,9'
          Dst:             freerdp_set_io_callbacks
    - functionName:    stream_dump_register_handlers
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/streamdump.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          74
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - stream_dump_register_read_handlers
        - stream_dump_register_write_handlers
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/streamdump.c:469,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:470,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/streamdump.c:473,7'
          Dst:             stream_dump_register_write_handlers
        - Src:             'libfreerdp/core/streamdump.c:475,9'
          Dst:             stream_dump_register_read_handlers
    - 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:    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:    1
      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:    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:    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_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:    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_UINT64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 286
      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
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:282,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/endian.h:284,3'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/include/winpr/endian.h:285,3'
          Dst:             winpr_Data_Write_UINT32
    - 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:    3
      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_UINT64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1127
      functionLinenumberEnd: 1134
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT64
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1128,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1129,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1130,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1130,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1132,3'
          Dst:             winpr_Data_Write_UINT64
    - functionName:    rdp_recv_client_persistent_key_list_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          164
      EdgeCount:       41
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
        - Stream_SafeSeekEx
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:453,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:456,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/activation.c:458,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/activation.c:458,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:465,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/activation.c:473,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/activation.c:479,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:484,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/activation.c:487,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:494,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/activation.c:496,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/activation.c:496,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:501,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/activation.c:503,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/activation.c:503,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:    23
      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:    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:    11
      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:    rdp_server_accept_client_persistent_key_list_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 808
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          58
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - rdp_finalize_set_flag
        - rdp_recv_client_persistent_key_list_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:799,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:800,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:802,7'
          Dst:             rdp_recv_client_persistent_key_list_pdu
        - Src:             'libfreerdp/core/activation.c:805,2'
          Dst:             rdp_finalize_set_flag
    - functionName:    rdp_send_server_font_map_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         54
      ICount:          117
      EdgeCount:       56
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Free
        - Stream_Write_UINT16_unchecked
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:595,15'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/activation.c:598,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/activation.c:600,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/activation.c:603,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:604,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:605,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:606,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:608,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:609,9'
          Dst:             rdp_send_data_pdu
    - 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:    28
      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:    rdp_recv_client_font_list_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          44
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_SafeSeekEx
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:438,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:440,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/activation.c:443,9'
          Dst:             Stream_SafeSeekEx
    - functionName:    rdp_server_accept_client_font_list_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 777
      functionLinenumberEnd: 795
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          88
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - rdp_finalize_set_flag
        - rdp_recv_client_font_list_pdu
        - rdp_send_server_font_map_pdu
        - rdp_server_transition_to_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:778,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:779,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:781,7'
          Dst:             rdp_recv_client_font_list_pdu
        - Src:             'libfreerdp/core/activation.c:783,2'
          Dst:             rdp_finalize_set_flag
        - Src:             'libfreerdp/core/activation.c:785,7'
          Dst:             rdp_server_transition_to_state
        - Src:             'libfreerdp/core/activation.c:788,7'
          Dst:             rdp_send_server_font_map_pdu
        - Src:             'libfreerdp/core/activation.c:791,7'
          Dst:             rdp_server_transition_to_state
    - functionName:    rdp_server_accept_client_control_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 774
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          190
      EdgeCount:       41
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - rdp_ctrlaction_string
        - rdp_finalize_flags_to_str
        - rdp_finalize_is_flag_set
        - rdp_finalize_set_flag
        - rdp_get_state
        - rdp_recv_control_pdu
        - rdp_state_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/activation.c:713,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:705,33'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/activation.c:707,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:708,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:710,7'
          Dst:             rdp_recv_control_pdu
        - Src:             'libfreerdp/core/activation.c:717,9'
          Dst:             rdp_finalize_is_flag_set
        - Src:             'libfreerdp/core/activation.c:721,5'
          Dst:             rdp_ctrlaction_string
        - Src:             'libfreerdp/core/activation.c:721,5'
          Dst:             rdp_state_string
        - Src:             'libfreerdp/core/activation.c:721,5'
          Dst:             rdp_finalize_flags_to_str
        - Src:             'libfreerdp/core/activation.c:721,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:732,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:738,11'
          Dst:             rdp_finalize_set_flag
        - Src:             'libfreerdp/core/activation.c:740,9'
          Dst:             rdp_finalize_is_flag_set
        - Src:             'libfreerdp/core/activation.c:744,5'
          Dst:             rdp_ctrlaction_string
        - Src:             'libfreerdp/core/activation.c:744,5'
          Dst:             rdp_state_string
        - Src:             'libfreerdp/core/activation.c:744,5'
          Dst:             rdp_finalize_flags_to_str
        - Src:             'libfreerdp/core/activation.c:744,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:755,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:761,11'
          Dst:             rdp_finalize_set_flag
        - Src:             'libfreerdp/core/activation.c:765,4'
          Dst:             rdp_ctrlaction_string
        - Src:             'libfreerdp/core/activation.c:765,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rdp_recv_control_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          102
      EdgeCount:       37
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:121,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:122,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:123,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:124,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:126,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/activation.c:129,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/activation.c:130,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/activation.c:131,2'
          Dst:             stream_read_u32_le
    - functionName:    rdp_ctrlaction_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 811
      functionLinenumberEnd: 833
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       17
      CyclomaticComplexity: 10
      functionsReached:
        - snprintf
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/core/activation.c:813,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:832,8'
          Dst:             snprintf
    - 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_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:    3
      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:    rdp_send_deactivate_all
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 698
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         76
      ICount:          214
      EdgeCount:       80
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogEx
        - Stream_Release
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_get_uint32
        - rdp_send_pdu
        - rdp_send_stream_pdu_init
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:665,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:666,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:670,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/activation.c:670,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/activation.c:676,15'
          Dst:             rdp_send_stream_pdu_init
        - Src:             'libfreerdp/core/activation.c:682,7'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/activation.c:685,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:687,26'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/activation.c:688,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:688,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:688,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/activation.c:690,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:691,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/activation.c:693,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:694,11'
          Dst:             rdp_send_pdu
        - Src:             'libfreerdp/core/activation.c:696,2'
          Dst:             Stream_Release
    - 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:    4
      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:    rdp_recv_deactivate_all
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 661
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          174
      EdgeCount:       51
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
        - Stream_Seek
        - freerdp_settings_get_uint32
        - freerdp_settings_set_uint32
        - rdp_client_transition_to_state
        - rdp_finalize_set_flag
        - rdp_get_state
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:616,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:617,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:619,6'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/activation.c:621,8'
          Dst:             rdp_finalize_set_flag
        - Src:             'libfreerdp/core/activation.c:625,29'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/activation.c:626,28'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/activation.c:634,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:635,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/activation.c:640,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/activation.c:643,4'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/activation.c:644,9'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/activation.c:647,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/activation.c:650,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/activation.c:652,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/activation.c:655,4'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/activation.c:659,9'
          Dst:             rdp_client_transition_to_state
    - functionName:    rdp_recv_font_map_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         50
      ICount:          174
      EdgeCount:       55
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - rdp_finalize_set_flag
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:547,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:548,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:549,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:550,2'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/activation.c:550,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:553,6'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/activation.c:555,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/activation.c:557,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:562,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/activation.c:564,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:569,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/activation.c:571,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:577,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/activation.c:579,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:585,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:589,9'
          Dst:             rdp_finalize_set_flag
    - functionName:    rdp_write_client_font_list_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         56
      ICount:          113
      EdgeCount:       57
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:513,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:515,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/activation.c:517,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:518,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:519,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:519,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:519,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:520,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    rdp_send_client_font_list_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          72
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Free
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - rdp_write_client_font_list_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:527,15'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/activation.c:530,7'
          Dst:             rdp_write_client_font_list_pdu
        - Src:             'libfreerdp/core/activation.c:532,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/activation.c:536,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:537,9'
          Dst:             rdp_send_data_pdu
    - functionName:    rdp_write_client_persistent_key_list_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         194
      ICount:          527
      EdgeCount:       197
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT64
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:250,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:251,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:253,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/activation.c:256,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:256,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:256,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:257,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:257,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:257,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:258,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:258,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:258,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:259,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:259,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:259,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:260,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:260,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:260,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:261,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:261,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:261,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:262,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:262,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:262,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:263,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:263,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:263,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:264,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:264,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:264,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:265,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:265,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:265,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:266,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/activation.c:267,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/activation.c:268,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:271,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/activation.c:277,3'
          Dst:             Stream_Write_UINT64
    - functionName:    rdp_load_persistent_key_list
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          161
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - calloc
        - freerdp_settings_get_bool
        - persistent_cache_free
        - persistent_cache_get_count
        - persistent_cache_new
        - persistent_cache_open
        - persistent_cache_read_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:292,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/activation.c:298,15'
          Dst:             persistent_cache_new
        - Src:             'libfreerdp/core/activation.c:304,6'
          Dst:             persistent_cache_open
        - Src:             'libfreerdp/core/activation.c:310,21'
          Dst:             persistent_cache_get_count
        - Src:             'libfreerdp/core/activation.c:315,22'
          Dst:             calloc
        - Src:             'libfreerdp/core/activation.c:324,8'
          Dst:             persistent_cache_read_entry
        - Src:             'libfreerdp/core/activation.c:333,2'
          Dst:             persistent_cache_free
        - Src:             'libfreerdp/core/activation.c:336,2'
          Dst:             persistent_cache_free
    - functionName:    rdp_send_client_persistent_key_list_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         68
      ICount:          499
      EdgeCount:       76
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_Free
        - WLog_Print_dbg_tag
        - rdp_data_pdu_init
        - rdp_load_persistent_key_list
        - rdp_send_data_pdu
        - rdp_write_client_persistent_key_list_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:346,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:348,20'
          Dst:             rdp_load_persistent_key_list
        - Src:             'libfreerdp/core/activation.c:350,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:362,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:365,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:368,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:371,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:374,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:399,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:401,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:407,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:414,15'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/activation.c:422,7'
          Dst:             rdp_write_client_persistent_key_list_pdu
        - Src:             'libfreerdp/core/activation.c:424,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/activation.c:429,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:432,9'
          Dst:             rdp_send_data_pdu
    - functionName:    rdp_write_client_control_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          145
      EdgeCount:       55
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:138,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:139,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/activation.c:141,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:141,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:141,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:142,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:142,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:142,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:143,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:143,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:143,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    rdp_send_client_control_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          101
      EdgeCount:       20
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Free
        - WLog_Print_dbg_tag
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - rdp_write_client_control_pdu
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/activation.c:221,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:227,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:234,15'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/activation.c:237,7'
          Dst:             rdp_write_client_control_pdu
        - Src:             'libfreerdp/core/activation.c:239,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/activation.c:243,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:244,9'
          Dst:             rdp_send_data_pdu
    - functionName:    rdp_send_server_control_granted_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         48
      ICount:          138
      EdgeCount:       50
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Free
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:200,15'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/activation.c:203,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/activation.c:205,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/activation.c:209,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:210,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:211,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:211,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:211,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:212,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/activation.c:213,9'
          Dst:             rdp_send_data_pdu
    - functionName:    rdp_send_server_control_cooperate_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          105
      EdgeCount:       46
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Free
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:181,15'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/activation.c:184,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/activation.c:186,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/activation.c:189,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:190,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:191,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/activation.c:193,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:194,9'
          Dst:             rdp_send_data_pdu
    - functionName:    rdp_recv_server_control_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          90
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - rdp_ctrlaction_string
        - rdp_finalize_set_flag
        - rdp_recv_control_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/activation.c:159,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:153,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:154,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:156,7'
          Dst:             rdp_recv_control_pdu
        - Src:             'libfreerdp/core/activation.c:162,11'
          Dst:             rdp_finalize_set_flag
        - Src:             'libfreerdp/core/activation.c:166,11'
          Dst:             rdp_finalize_set_flag
        - Src:             'libfreerdp/core/activation.c:170,4'
          Dst:             rdp_ctrlaction_string
        - Src:             'libfreerdp/core/activation.c:170,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rdp_send_client_synchronize_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          84
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Free
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - rdp_write_synchronize_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:104,15'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/activation.c:108,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:109,7'
          Dst:             rdp_write_synchronize_pdu
        - Src:             'libfreerdp/core/activation.c:111,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/activation.c:115,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:116,9'
          Dst:             rdp_send_data_pdu
    - functionName:    rdp_write_synchronize_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         93
      ICount:          300
      EdgeCount:       103
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Write_UINT16_unchecked
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:38,27'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/activation.c:40,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'libfreerdp/core/activation.c:42,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/activation.c:43,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:43,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:43,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:43,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:43,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:43,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:43,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:43,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:43,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    rdp_recv_client_synchronize_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rdp_finalize_set_flag
        - rdp_recv_sync_pdu
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:96,7'
          Dst:             rdp_recv_sync_pdu
        - Src:             'libfreerdp/core/activation.c:98,9'
          Dst:             rdp_finalize_set_flag
    - functionName:    rdp_recv_sync_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - stream_read_u16_le
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:54,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/activation.c:57,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/activation.c:60,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/activation.c:64,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/activation.c:65,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rdp_send_server_synchronize_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          84
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Free
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - rdp_write_synchronize_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:79,15'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/activation.c:83,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:84,7'
          Dst:             rdp_write_synchronize_pdu
        - Src:             'libfreerdp/core/activation.c:86,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/activation.c:90,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/activation.c:91,9'
          Dst:             rdp_send_data_pdu
    - functionName:    rdp_recv_server_synchronize_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/activation.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rdp_finalize_set_flag
        - rdp_recv_sync_pdu
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/activation.c:71,7'
          Dst:             rdp_recv_sync_pdu
        - Src:             'libfreerdp/core/activation.c:73,9'
          Dst:             rdp_finalize_set_flag
    - functionName:    mcs_write_connect_initial
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 736
      functionLinenumberEnd: 784
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          179
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_Buffer
        - Stream_Capacity
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - Stream_Write
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - ber_write_BOOL
        - ber_write_application_tag
        - ber_write_octet_string
        - mcs_write_domain_parameters
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:744,29'
          Dst:             Stream_Capacity
        - Src:             'libfreerdp/core/mcs.c:744,9'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/mcs.c:748,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:748,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:753,7'
          Dst:             ber_write_octet_string
        - Src:             'libfreerdp/core/mcs.c:756,7'
          Dst:             ber_write_octet_string
        - Src:             'libfreerdp/core/mcs.c:759,2'
          Dst:             ber_write_BOOL
        - Src:             'libfreerdp/core/mcs.c:762,7'
          Dst:             mcs_write_domain_parameters
        - Src:             'libfreerdp/core/mcs.c:766,7'
          Dst:             mcs_write_domain_parameters
        - Src:             'libfreerdp/core/mcs.c:770,7'
          Dst:             mcs_write_domain_parameters
        - Src:             'libfreerdp/core/mcs.c:774,36'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/mcs.c:774,61'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/mcs.c:774,7'
          Dst:             ber_write_octet_string
        - Src:             'libfreerdp/core/mcs.c:776,11'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/mcs.c:778,2'
          Dst:             ber_write_application_tag
        - Src:             'libfreerdp/core/mcs.c:779,18'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/mcs.c:779,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/mcs.c:782,2'
          Dst:             Stream_Free
    - functionName:    Stream_Capacity
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1336
      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:1335,3'
          Dst:             winpr_int_assert
    - functionName:    mcs_write_domain_parameters
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          195
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - Stream_Buffer
        - Stream_Capacity
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - Stream_Write
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - ber_write_integer
        - ber_write_sequence_tag
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:458,38'
          Dst:             Stream_Capacity
        - Src:             'libfreerdp/core/mcs.c:458,18'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/mcs.c:462,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:462,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:466,7'
          Dst:             ber_write_integer
        - Src:             'libfreerdp/core/mcs.c:468,7'
          Dst:             ber_write_integer
        - Src:             'libfreerdp/core/mcs.c:470,7'
          Dst:             ber_write_integer
        - Src:             'libfreerdp/core/mcs.c:472,7'
          Dst:             ber_write_integer
        - Src:             'libfreerdp/core/mcs.c:474,7'
          Dst:             ber_write_integer
        - Src:             'libfreerdp/core/mcs.c:476,7'
          Dst:             ber_write_integer
        - Src:             'libfreerdp/core/mcs.c:478,7'
          Dst:             ber_write_integer
        - Src:             'libfreerdp/core/mcs.c:480,7'
          Dst:             ber_write_integer
        - Src:             'libfreerdp/core/mcs.c:482,11'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/mcs.c:483,7'
          Dst:             ber_write_sequence_tag
        - Src:             'libfreerdp/core/mcs.c:485,18'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/mcs.c:485,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/mcs.c:489,2'
          Dst:             Stream_Free
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,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_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:    mcs_initialize_client_channels
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          132
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - freerdp_settings_get_pointer_array
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:306,22'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/mcs.c:316,7'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/core/mcs.c:318,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:    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:    mcs_server_apply_to_settings
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1522
      functionLinenumberEnd: 1546
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          144
      EdgeCount:       39
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_set_pointer_array
        - freerdp_settings_set_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:1525,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:1526,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:1528,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/mcs.c:1537,8'
          Dst:             freerdp_settings_set_pointer_array
        - Src:             'libfreerdp/core/mcs.c:1544,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:1544,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    mcs_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1513
      functionLinenumberEnd: 1519
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mcs_init_domain_parameters
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          57
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mcs_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1480
      functionLinenumberEnd: 1505
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          96
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - calloc
        - mcs_init_domain_parameters
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:1481,25'
          Dst:             calloc
        - Src:             'libfreerdp/core/mcs.c:1485,13'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/mcs.c:1486,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:1489,2'
          Dst:             mcs_init_domain_parameters
        - Src:             'libfreerdp/core/mcs.c:1490,2'
          Dst:             mcs_init_domain_parameters
        - Src:             'libfreerdp/core/mcs.c:1491,2'
          Dst:             mcs_init_domain_parameters
        - Src:             'libfreerdp/core/mcs.c:1492,2'
          Dst:             mcs_init_domain_parameters
        - Src:             'libfreerdp/core/mcs.c:1496,34'
          Dst:             calloc
    - functionName:    mcs_send_connect_initial
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 839
      functionLinenumberEnd: 913
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         60
      ICount:          299
      EdgeCount:       77
      CyclomaticComplexity: 19
      functionsReached:
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - Stream_SealLength
        - Stream_Seek
        - Stream_SetPosition
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_transport
        - gcc_write_client_data_blocks
        - gcc_write_conference_create_request
        - mcs_initialize_client_channels
        - mcs_write_connect_initial
        - tpdu_write_data
        - tpkt_write_header
        - transport_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:850,2'
          Dst:             mcs_initialize_client_channels
        - Src:             'libfreerdp/core/mcs.c:851,25'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/mcs.c:855,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:855,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:859,7'
          Dst:             gcc_write_client_data_blocks
        - Src:             'libfreerdp/core/mcs.c:861,13'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/mcs.c:865,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:865,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:869,7'
          Dst:             gcc_write_conference_create_request
        - Src:             'libfreerdp/core/mcs.c:871,11'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/mcs.c:872,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/mcs.c:876,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:876,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:880,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/mcs.c:881,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/mcs.c:883,7'
          Dst:             mcs_write_connect_initial
        - Src:             'libfreerdp/core/mcs.c:885,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:885,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:889,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/mcs.c:893,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/mcs.c:895,7'
          Dst:             tpkt_write_header
        - Src:             'libfreerdp/core/mcs.c:897,7'
          Dst:             tpdu_write_data
        - Src:             'libfreerdp/core/mcs.c:899,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/mcs.c:901,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/mcs.c:904,29'
          Dst:             freerdp_get_transport
        - Src:             'libfreerdp/core/mcs.c:905,12'
          Dst:             transport_write
        - Src:             'libfreerdp/core/mcs.c:909,2'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/mcs.c:910,2'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/mcs.c:911,2'
          Dst:             Stream_Free
    - functionName:    mcs_client_begin
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1457
      functionLinenumberEnd: 1471
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          92
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_last_error
        - freerdp_set_last_error_ex
        - mcs_send_connect_initial
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:1462,7'
          Dst:             mcs_send_connect_initial
        - Src:             'libfreerdp/core/mcs.c:1464,3'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/mcs.c:1464,3'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/mcs.c:1466,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:1466,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    mcs_send_disconnect_provider_ultimatum
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1427
      functionLinenumberEnd: 1453
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          184
      EdgeCount:       51
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_Free
        - Stream_New
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_disconnect_reason_string
        - freerdp_get_transport
        - mcs_write_domain_mcspdu_header
        - per_write_enumerated
        - transport_write
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:1431,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:1433,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/mcs.c:1438,7'
          Dst:             mcs_write_domain_mcspdu_header
        - Src:             'libfreerdp/core/mcs.c:1441,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:1441,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:1441,7'
          Dst:             per_write_enumerated
        - Src:             'libfreerdp/core/mcs.c:1445,29'
          Dst:             freerdp_get_transport
        - Src:             'libfreerdp/core/mcs.c:1446,12'
          Dst:             transport_write
        - Src:             'libfreerdp/core/mcs.c:1450,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:1450,2'
          Dst:             freerdp_disconnect_reason_string
        - Src:             'libfreerdp/core/mcs.c:1450,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:1452,2'
          Dst:             Stream_Free
    - functionName:    mcs_write_domain_mcspdu_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - short
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          97
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - per_write_choice
        - tpdu_write_data
        - tpkt_write_header
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:383,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:384,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:385,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:387,7'
          Dst:             tpkt_write_header
        - Src:             'libfreerdp/core/mcs.c:389,7'
          Dst:             tpdu_write_data
        - Src:             'libfreerdp/core/mcs.c:391,9'
          Dst:             per_write_choice
    - 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:    Stream_Rewind_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1216
      functionLinenumberEnd: 1218
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Rewind
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1217,3'
          Dst:             Stream_Rewind
    - functionName:    mcs_recv_disconnect_provider_ultimatum
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1376
      functionLinenumberEnd: 1419
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          99
      EdgeCount:       29
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Rewind_UINT8
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:1380,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:1381,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:1382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:1411,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/mcs.c:1414,2'
          Dst:             Stream_Rewind_UINT8
        - Src:             'libfreerdp/core/mcs.c:1415,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/mcs.c:1416,2'
          Dst:             stream_read_u8
    - functionName:    mcs_send_channel_join_confirm
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1333
      functionLinenumberEnd: 1368
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          140
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_transport
        - mcs_write_domain_mcspdu_header
        - per_write_enumerated
        - per_write_integer16
        - transport_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:1340,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/mcs.c:1344,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:1344,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:1348,7'
          Dst:             mcs_write_domain_mcspdu_header
        - Src:             'libfreerdp/core/mcs.c:1350,7'
          Dst:             per_write_enumerated
        - Src:             'libfreerdp/core/mcs.c:1352,7'
          Dst:             per_write_integer16
        - Src:             'libfreerdp/core/mcs.c:1354,7'
          Dst:             per_write_integer16
        - Src:             'libfreerdp/core/mcs.c:1356,7'
          Dst:             per_write_integer16
        - Src:             'libfreerdp/core/mcs.c:1358,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/mcs.c:1361,29'
          Dst:             freerdp_get_transport
        - Src:             'libfreerdp/core/mcs.c:1362,12'
          Dst:             transport_write
        - Src:             'libfreerdp/core/mcs.c:1366,2'
          Dst:             Stream_Free
    - functionName:    mcs_recv_channel_join_confirm
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1302
      functionLinenumberEnd: 1324
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          117
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - mcs_read_domain_mcspdu_header
        - per_read_enumerated
        - per_read_integer16
        - tpkt_ensure_stream_consumed_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:1308,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:1309,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:1311,7'
          Dst:             mcs_read_domain_mcspdu_header
        - Src:             'libfreerdp/core/mcs.c:1315,7'
          Dst:             per_read_enumerated
        - Src:             'libfreerdp/core/mcs.c:1317,7'
          Dst:             per_read_integer16
        - Src:             'libfreerdp/core/mcs.c:1319,7'
          Dst:             per_read_integer16
        - Src:             'libfreerdp/core/mcs.c:1321,7'
          Dst:             per_read_integer16
        - Src:             'libfreerdp/core/mcs.c:1323,9'
          Dst:             tpkt_ensure_stream_consumed_
    - functionName:    mcs_read_domain_mcspdu_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          186
      EdgeCount:       54
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - mcs_domain_pdu_string
        - per_read_choice
        - tpdu_read_data
        - tpkt_read_header
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:344,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:345,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:346,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:348,7'
          Dst:             tpkt_read_header
        - Src:             'libfreerdp/core/mcs.c:351,7'
          Dst:             tpdu_read_data
        - Src:             'libfreerdp/core/mcs.c:354,7'
          Dst:             per_read_choice
        - Src:             'libfreerdp/core/mcs.c:365,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:365,3'
          Dst:             mcs_domain_pdu_string
        - Src:             'libfreerdp/core/mcs.c:365,3'
          Dst:             mcs_domain_pdu_string
        - Src:             'libfreerdp/core/mcs.c:365,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    mcs_domain_pdu_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         47
      ICount:          237
      EdgeCount:       92
      CyclomaticComplexity: 47
      functionsReached: []
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/core/mcs.c:196,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    mcs_send_channel_join_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1265
      functionLinenumberEnd: 1293
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          125
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_transport
        - mcs_write_domain_mcspdu_header
        - per_write_integer16
        - transport_write
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:1269,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:1271,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/mcs.c:1275,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:1275,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:1279,7'
          Dst:             mcs_write_domain_mcspdu_header
        - Src:             'libfreerdp/core/mcs.c:1281,7'
          Dst:             per_write_integer16
        - Src:             'libfreerdp/core/mcs.c:1283,7'
          Dst:             per_write_integer16
        - Src:             'libfreerdp/core/mcs.c:1285,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/mcs.c:1287,28'
          Dst:             freerdp_get_transport
        - Src:             'libfreerdp/core/mcs.c:1288,11'
          Dst:             transport_write
        - Src:             'libfreerdp/core/mcs.c:1291,2'
          Dst:             Stream_Free
    - functionName:    mcs_recv_channel_join_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1228
      functionLinenumberEnd: 1252
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          126
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - freerdp_settings_get_bool
        - mcs_read_domain_mcspdu_header
        - per_read_integer16
        - tpkt_ensure_stream_consumed_
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:1235,7'
          Dst:             mcs_read_domain_mcspdu_header
        - Src:             'libfreerdp/core/mcs.c:1239,7'
          Dst:             per_read_integer16
        - Src:             'libfreerdp/core/mcs.c:1243,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/mcs.c:1248,7'
          Dst:             per_read_integer16
        - Src:             'libfreerdp/core/mcs.c:1251,9'
          Dst:             tpkt_ensure_stream_consumed_
    - functionName:    mcs_send_attach_user_confirm
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1188
      functionLinenumberEnd: 1217
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          126
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_transport
        - mcs_write_domain_mcspdu_header
        - per_write_enumerated
        - per_write_integer16
        - transport_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:1195,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/mcs.c:1199,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:1199,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:1204,7'
          Dst:             mcs_write_domain_mcspdu_header
        - Src:             'libfreerdp/core/mcs.c:1206,7'
          Dst:             per_write_enumerated
        - Src:             'libfreerdp/core/mcs.c:1208,7'
          Dst:             per_write_integer16
        - Src:             'libfreerdp/core/mcs.c:1210,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/mcs.c:1212,28'
          Dst:             freerdp_get_transport
        - Src:             'libfreerdp/core/mcs.c:1213,11'
          Dst:             transport_write
        - Src:             'libfreerdp/core/mcs.c:1215,2'
          Dst:             Stream_Free
    - functionName:    mcs_recv_attach_user_confirm
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1164
      functionLinenumberEnd: 1179
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - mcs_read_domain_mcspdu_header
        - per_read_enumerated
        - per_read_integer16
        - tpkt_ensure_stream_consumed_
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:1171,7'
          Dst:             mcs_read_domain_mcspdu_header
        - Src:             'libfreerdp/core/mcs.c:1174,7'
          Dst:             per_read_enumerated
        - Src:             'libfreerdp/core/mcs.c:1176,7'
          Dst:             per_read_integer16
        - Src:             'libfreerdp/core/mcs.c:1178,9'
          Dst:             tpkt_ensure_stream_consumed_
    - functionName:    mcs_send_attach_user_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1129
      functionLinenumberEnd: 1155
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          97
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_transport
        - mcs_write_domain_mcspdu_header
        - transport_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:1136,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/mcs.c:1140,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:1140,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:1144,7'
          Dst:             mcs_write_domain_mcspdu_header
        - Src:             'libfreerdp/core/mcs.c:1147,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/mcs.c:1149,28'
          Dst:             freerdp_get_transport
        - Src:             'libfreerdp/core/mcs.c:1150,11'
          Dst:             transport_write
        - Src:             'libfreerdp/core/mcs.c:1153,2'
          Dst:             Stream_Free
    - functionName:    mcs_recv_attach_user_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1110
      functionLinenumberEnd: 1120
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mcs_read_domain_mcspdu_header
        - tpkt_ensure_stream_consumed_
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:1116,7'
          Dst:             mcs_read_domain_mcspdu_header
        - Src:             'libfreerdp/core/mcs.c:1119,9'
          Dst:             tpkt_ensure_stream_consumed_
    - functionName:    mcs_send_erect_domain_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1072
      functionLinenumberEnd: 1100
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          115
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_transport
        - mcs_write_domain_mcspdu_header
        - per_write_integer
        - transport_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:1079,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/mcs.c:1083,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:1083,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:1087,7'
          Dst:             mcs_write_domain_mcspdu_header
        - Src:             'libfreerdp/core/mcs.c:1089,7'
          Dst:             per_write_integer
        - Src:             'libfreerdp/core/mcs.c:1091,7'
          Dst:             per_write_integer
        - Src:             'libfreerdp/core/mcs.c:1093,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/mcs.c:1095,28'
          Dst:             freerdp_get_transport
        - Src:             'libfreerdp/core/mcs.c:1096,11'
          Dst:             transport_write
        - Src:             'libfreerdp/core/mcs.c:1098,2'
          Dst:             Stream_Free
    - functionName:    mcs_recv_erect_domain_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1044
      functionLinenumberEnd: 1063
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          92
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - mcs_read_domain_mcspdu_header
        - per_read_integer
        - tpkt_ensure_stream_consumed_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:1049,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:1050,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:1052,7'
          Dst:             mcs_read_domain_mcspdu_header
        - Src:             'libfreerdp/core/mcs.c:1056,7'
          Dst:             per_read_integer
        - Src:             'libfreerdp/core/mcs.c:1059,7'
          Dst:             per_read_integer
        - Src:             'libfreerdp/core/mcs.c:1062,9'
          Dst:             tpkt_ensure_stream_consumed_
    - functionName:    mcs_write_connect_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 797
      functionLinenumberEnd: 830
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          142
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_Buffer
        - Stream_Capacity
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - Stream_Write
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - ber_write_application_tag
        - ber_write_enumerated
        - ber_write_integer
        - ber_write_octet_string
        - mcs_write_domain_parameters
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:805,29'
          Dst:             Stream_Capacity
        - Src:             'libfreerdp/core/mcs.c:805,9'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/mcs.c:809,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:809,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:813,2'
          Dst:             ber_write_enumerated
        - Src:             'libfreerdp/core/mcs.c:814,7'
          Dst:             ber_write_integer
        - Src:             'libfreerdp/core/mcs.c:817,7'
          Dst:             mcs_write_domain_parameters
        - Src:             'libfreerdp/core/mcs.c:821,36'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/mcs.c:821,61'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/mcs.c:821,7'
          Dst:             ber_write_octet_string
        - Src:             'libfreerdp/core/mcs.c:823,11'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/mcs.c:824,2'
          Dst:             ber_write_application_tag
        - Src:             'libfreerdp/core/mcs.c:825,18'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/mcs.c:825,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/mcs.c:828,2'
          Dst:             Stream_Free
    - functionName:    mcs_send_connect_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 963
      functionLinenumberEnd: 1034
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         50
      ICount:          262
      EdgeCount:       65
      CyclomaticComplexity: 17
      functionsReached:
        - Stream_Capacity
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - Stream_SealLength
        - Stream_Seek
        - Stream_SetPosition
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_transport
        - gcc_write_conference_create_response
        - gcc_write_server_data_blocks
        - mcs_write_connect_response
        - tpdu_write_data
        - tpkt_write_header
        - transport_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:974,25'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/mcs.c:978,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:978,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:982,7'
          Dst:             gcc_write_server_data_blocks
        - Src:             'libfreerdp/core/mcs.c:985,40'
          Dst:             Stream_Capacity
        - Src:             'libfreerdp/core/mcs.c:985,14'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/mcs.c:989,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:989,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:993,7'
          Dst:             gcc_write_conference_create_response
        - Src:             'libfreerdp/core/mcs.c:995,11'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/mcs.c:996,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/mcs.c:1000,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:1000,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:1004,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/mcs.c:1005,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/mcs.c:1007,7'
          Dst:             mcs_write_connect_response
        - Src:             'libfreerdp/core/mcs.c:1010,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/mcs.c:1014,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/mcs.c:1016,7'
          Dst:             tpkt_write_header
        - Src:             'libfreerdp/core/mcs.c:1018,7'
          Dst:             tpdu_write_data
        - Src:             'libfreerdp/core/mcs.c:1020,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/mcs.c:1022,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/mcs.c:1025,29'
          Dst:             freerdp_get_transport
        - Src:             'libfreerdp/core/mcs.c:1026,12'
          Dst:             transport_write
        - Src:             'libfreerdp/core/mcs.c:1030,2'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/mcs.c:1031,2'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/mcs.c:1032,2'
          Dst:             Stream_Free
    - functionName:    mcs_recv_connect_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 922
      functionLinenumberEnd: 954
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          159
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - ber_read_application_tag
        - ber_read_enumerated
        - ber_read_integer
        - ber_read_octet_string_tag
        - gcc_read_conference_create_response
        - mcs_read_domain_parameters
        - tpdu_read_data
        - tpkt_ensure_stream_consumed_
        - tpkt_read_header
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:932,7'
          Dst:             tpkt_read_header
        - Src:             'libfreerdp/core/mcs.c:935,7'
          Dst:             tpdu_read_data
        - Src:             'libfreerdp/core/mcs.c:938,7'
          Dst:             ber_read_application_tag
        - Src:             'libfreerdp/core/mcs.c:939,7'
          Dst:             ber_read_enumerated
        - Src:             'libfreerdp/core/mcs.c:940,7'
          Dst:             ber_read_integer
        - Src:             'libfreerdp/core/mcs.c:941,7'
          Dst:             mcs_read_domain_parameters
        - Src:             'libfreerdp/core/mcs.c:942,7'
          Dst:             ber_read_octet_string_tag
        - Src:             'libfreerdp/core/mcs.c:947,7'
          Dst:             gcc_read_conference_create_response
        - Src:             'libfreerdp/core/mcs.c:949,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:949,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:953,9'
          Dst:             tpkt_ensure_stream_consumed_
    - functionName:    mcs_read_domain_parameters
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          135
      EdgeCount:       36
      CyclomaticComplexity: 12
      functionsReached:
        - ber_read_integer
        - ber_read_sequence_tag
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:433,9'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/core/mcs.c:434,9'
          Dst:             ber_read_integer
        - Src:             'libfreerdp/core/mcs.c:435,9'
          Dst:             ber_read_integer
        - Src:             'libfreerdp/core/mcs.c:436,9'
          Dst:             ber_read_integer
        - Src:             'libfreerdp/core/mcs.c:437,9'
          Dst:             ber_read_integer
        - Src:             'libfreerdp/core/mcs.c:438,9'
          Dst:             ber_read_integer
        - Src:             'libfreerdp/core/mcs.c:439,9'
          Dst:             ber_read_integer
        - Src:             'libfreerdp/core/mcs.c:440,9'
          Dst:             ber_read_integer
        - Src:             'libfreerdp/core/mcs.c:441,9'
          Dst:             ber_read_integer
    - functionName:    mcs_merge_domain_parameters
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 655
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         107
      ICount:          477
      EdgeCount:       133
      CyclomaticComplexity: 28
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:550,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:550,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:567,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:567,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:583,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:583,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:599,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:599,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:619,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:619,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:632,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:632,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/mcs.c:647,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/mcs.c:647,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    mcs_recv_connect_initial
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/mcs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 725
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         49
      ICount:          247
      EdgeCount:       64
      CyclomaticComplexity: 17
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek
        - ber_read_BOOL
        - ber_read_application_tag
        - ber_read_octet_string_tag
        - gcc_read_conference_create_request
        - mcs_merge_domain_parameters
        - mcs_read_domain_parameters
        - tpdu_read_data
        - tpkt_ensure_stream_consumed_
        - tpkt_read_header
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/mcs.c:671,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:672,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/mcs.c:674,7'
          Dst:             tpkt_read_header
        - Src:             'libfreerdp/core/mcs.c:677,7'
          Dst:             tpdu_read_data
        - Src:             'libfreerdp/core/mcs.c:680,7'
          Dst:             ber_read_application_tag
        - Src:             'libfreerdp/core/mcs.c:684,7'
          Dst:             ber_read_octet_string_tag
        - Src:             'libfreerdp/core/mcs.c:685,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/mcs.c:688,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/mcs.c:691,7'
          Dst:             ber_read_octet_string_tag
        - Src:             'libfreerdp/core/mcs.c:692,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/mcs.c:695,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/mcs.c:698,7'
          Dst:             ber_read_BOOL
        - Src:             'libfreerdp/core/mcs.c:702,7'
          Dst:             mcs_read_domain_parameters
        - Src:             'libfreerdp/core/mcs.c:706,7'
          Dst:             mcs_read_domain_parameters
        - Src:             'libfreerdp/core/mcs.c:710,7'
          Dst:             mcs_read_domain_parameters
        - Src:             'libfreerdp/core/mcs.c:713,7'
          Dst:             ber_read_octet_string_tag
        - Src:             'libfreerdp/core/mcs.c:714,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/mcs.c:717,7'
          Dst:             gcc_read_conference_create_request
        - Src:             'libfreerdp/core/mcs.c:720,7'
          Dst:             mcs_merge_domain_parameters
        - Src:             'libfreerdp/core/mcs.c:724,9'
          Dst:             tpkt_ensure_stream_consumed_
    - 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_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_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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1242,3'
          Dst:             Stream_Fill
    - functionName:    winpr_Data_Write_UINT64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 286
      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
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:282,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/endian.h:284,3'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/include/winpr/endian.h:285,3'
          Dst:             winpr_Data_Write_UINT32
    - 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:    3
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:236,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:    4
      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_UINT64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1127
      functionLinenumberEnd: 1134
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT64
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1128,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1129,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1130,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1130,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1132,3'
          Dst:             winpr_Data_Write_UINT64
    - 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:    8
      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_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    nla_write_KERB_TICKET_LOGON
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1539
      functionLinenumberEnd: 1557
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         64
      ICount:          204
      EdgeCount:       65
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT64
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1540,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1542,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/nla.c:1546,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/nla.c:1547,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1547,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1547,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/nla.c:1548,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1548,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1548,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/nla.c:1549,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1549,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1549,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/nla.c:1551,2'
          Dst:             Stream_Write_UINT64
        - Src:             'libfreerdp/core/nla.c:1552,2'
          Dst:             Stream_Write_UINT64
        - Src:             'libfreerdp/core/nla.c:1554,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/nla.c:1555,2'
          Dst:             Stream_Write
    - functionName:    nla_get_KERB_TICKET_LOGON
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1560
      functionLinenumberEnd: 1567
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - credssp_auth_tableAndContext
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1561,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1562,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1566,2'
          Dst:             credssp_auth_tableAndContext
    - functionName:    nla_write_TSRemoteGuardNtlmCred
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1612
      functionLinenumberEnd: 1644
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          239
      EdgeCount:       67
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Buffer
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - Stream_Zero
        - WinPrAsn1EncContextualOctetString
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1619,7'
          Dst:             WinPrAsn1EncContextualOctetString
        - Src:             'libfreerdp/core/nla.c:1623,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/nla.c:1627,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1627,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1627,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/nla.c:1628,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1628,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1628,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/nla.c:1630,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/nla.c:1631,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1631,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1631,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/nla.c:1632,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1632,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1632,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/nla.c:1633,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/nla.c:1634,2'
          Dst:             Stream_Zero
        - Src:             'libfreerdp/core/nla.c:1637,40'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/nla.c:1637,63'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/nla.c:1638,9'
          Dst:             WinPrAsn1EncContextualOctetString
        - Src:             'libfreerdp/core/nla.c:1642,2'
          Dst:             Stream_Free
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    nla_write_TSRemoteGuardKerbCred
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1572
      functionLinenumberEnd: 1607
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          96
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Buffer
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - WinPrAsn1EncContextualOctetString
        - nla_get_KERB_TICKET_LOGON
        - nla_write_KERB_TICKET_LOGON
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1585,7'
          Dst:             WinPrAsn1EncContextualOctetString
        - Src:             'libfreerdp/core/nla.c:1589,7'
          Dst:             nla_get_KERB_TICKET_LOGON
        - Src:             'libfreerdp/core/nla.c:1592,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/nla.c:1596,7'
          Dst:             nla_write_KERB_TICKET_LOGON
        - Src:             'libfreerdp/core/nla.c:1599,19'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/nla.c:1600,20'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/nla.c:1601,8'
          Dst:             WinPrAsn1EncContextualOctetString
        - Src:             'libfreerdp/core/nla.c:1606,2'
          Dst:             Stream_Free
    - functionName:    nla_encode_ts_remoteguard_credentials
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1780
      functionLinenumberEnd: 1818
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          154
      EdgeCount:       48
      CyclomaticComplexity: 12
      functionsReached:
        - WinPrAsn1EncContextualSeqContainer
        - WinPrAsn1EncEndContainer
        - WinPrAsn1EncSeqContainer
        - nla_write_TSRemoteGuardKerbCred
        - nla_write_TSRemoteGuardNtlmCred
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1781,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1782,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1785,7'
          Dst:             WinPrAsn1EncSeqContainer
        - Src:             'libfreerdp/core/nla.c:1789,7'
          Dst:             WinPrAsn1EncContextualSeqContainer
        - Src:             'libfreerdp/core/nla.c:1792,7'
          Dst:             nla_write_TSRemoteGuardKerbCred
        - Src:             'libfreerdp/core/nla.c:1792,53'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'libfreerdp/core/nla.c:1800,8'
          Dst:             WinPrAsn1EncContextualSeqContainer
        - Src:             'libfreerdp/core/nla.c:1803,8'
          Dst:             WinPrAsn1EncSeqContainer
        - Src:             'libfreerdp/core/nla.c:1806,8'
          Dst:             nla_write_TSRemoteGuardNtlmCred
        - Src:             'libfreerdp/core/nla.c:1809,8'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'libfreerdp/core/nla.c:1812,8'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'libfreerdp/core/nla.c:1817,9'
          Dst:             WinPrAsn1EncEndContainer
    - functionName:    nla_encode_ts_password_credentials
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1740
      functionLinenumberEnd: 1777
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          201
      EdgeCount:       47
      CyclomaticComplexity: 8
      functionsReached:
        - WinPrAsn1EncContextualOctetString
        - WinPrAsn1EncEndContainer
        - WinPrAsn1EncSeqContainer
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1745,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1746,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1747,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1750,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1753,7'
          Dst:             WinPrAsn1EncSeqContainer
        - Src:             'libfreerdp/core/nla.c:1768,6'
          Dst:             WinPrAsn1EncContextualOctetString
        - Src:             'libfreerdp/core/nla.c:1770,6'
          Dst:             WinPrAsn1EncContextualOctetString
        - Src:             'libfreerdp/core/nla.c:1772,6'
          Dst:             WinPrAsn1EncContextualOctetString
        - Src:             'libfreerdp/core/nla.c:1776,9'
          Dst:             WinPrAsn1EncEndContainer
    - functionName:    nla_encode_ts_smartcard_credentials
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1647
      functionLinenumberEnd: 1737
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         78
      ICount:          355
      EdgeCount:       93
      CyclomaticComplexity: 17
      functionsReached:
        - WinPrAsn1EncContextualInteger
        - WinPrAsn1EncContextualOctetString
        - WinPrAsn1EncContextualSeqContainer
        - WinPrAsn1EncEndContainer
        - WinPrAsn1EncSeqContainer
        - WinPrAsn1FreeOctetString
        - freerdp_settings_get_string
        - freerdp_settings_get_string_as_utf16
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1658,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1659,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1660,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1663,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1666,7'
          Dst:             WinPrAsn1EncSeqContainer
        - Src:             'libfreerdp/core/nla.c:1672,13'
          Dst:             freerdp_settings_get_string_as_utf16
        - Src:             'libfreerdp/core/nla.c:1674,13'
          Dst:             WinPrAsn1EncContextualOctetString
        - Src:             'libfreerdp/core/nla.c:1675,2'
          Dst:             WinPrAsn1FreeOctetString
        - Src:             'libfreerdp/core/nla.c:1680,7'
          Dst:             WinPrAsn1EncContextualSeqContainer
        - Src:             'libfreerdp/core/nla.c:1686,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/nla.c:1686,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1686,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1684,7'
          Dst:             WinPrAsn1EncContextualInteger
        - Src:             'libfreerdp/core/nla.c:1694,30'
          Dst:             freerdp_settings_get_string_as_utf16
        - Src:             'libfreerdp/core/nla.c:1700,8'
          Dst:             WinPrAsn1EncContextualOctetString
        - Src:             'libfreerdp/core/nla.c:1701,4'
          Dst:             WinPrAsn1FreeOctetString
        - Src:             'libfreerdp/core/nla.c:1708,7'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'libfreerdp/core/nla.c:1712,6'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/nla.c:1715,14'
          Dst:             freerdp_settings_get_string_as_utf16
        - Src:             'libfreerdp/core/nla.c:1717,9'
          Dst:             WinPrAsn1EncContextualOctetString
        - Src:             'libfreerdp/core/nla.c:1718,3'
          Dst:             WinPrAsn1FreeOctetString
        - Src:             'libfreerdp/core/nla.c:1724,6'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/nla.c:1727,14'
          Dst:             freerdp_settings_get_string_as_utf16
        - Src:             'libfreerdp/core/nla.c:1729,9'
          Dst:             WinPrAsn1EncContextualOctetString
        - Src:             'libfreerdp/core/nla.c:1730,3'
          Dst:             WinPrAsn1FreeOctetString
        - Src:             'libfreerdp/core/nla.c:1736,9'
          Dst:             WinPrAsn1EncEndContainer
    - functionName:    nla_encode_ts_credentials
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1828
      functionLinenumberEnd: 1904
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         57
      ICount:          243
      EdgeCount:       69
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_StaticInit
        - WLog_Print_dbg_tag
        - WinPrAsn1EncContextualInteger
        - WinPrAsn1EncContextualOctetStringContainer
        - WinPrAsn1EncEndContainer
        - WinPrAsn1EncSeqContainer
        - WinPrAsn1EncStreamSize
        - WinPrAsn1EncToStream
        - WinPrAsn1Encoder_Free
        - WinPrAsn1Encoder_New
        - nla_encode_ts_password_credentials
        - nla_encode_ts_remoteguard_credentials
        - nla_encode_ts_smartcard_credentials
        - nla_sec_buffer_alloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nla.c:1864,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1835,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1836,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1839,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1848,8'
          Dst:             WinPrAsn1Encoder_New
        - Src:             'libfreerdp/core/nla.c:1853,7'
          Dst:             WinPrAsn1EncSeqContainer
        - Src:             'libfreerdp/core/nla.c:1857,7'
          Dst:             WinPrAsn1EncContextualInteger
        - Src:             'libfreerdp/core/nla.c:1861,7'
          Dst:             WinPrAsn1EncContextualOctetStringContainer
        - Src:             'libfreerdp/core/nla.c:1867,9'
          Dst:             nla_encode_ts_smartcard_credentials
        - Src:             'libfreerdp/core/nla.c:1872,9'
          Dst:             nla_encode_ts_password_credentials
        - Src:             'libfreerdp/core/nla.c:1877,9'
          Dst:             nla_encode_ts_remoteguard_credentials
        - Src:             'libfreerdp/core/nla.c:1885,7'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'libfreerdp/core/nla.c:1885,41'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'libfreerdp/core/nla.c:1888,7'
          Dst:             WinPrAsn1EncStreamSize
        - Src:             'libfreerdp/core/nla.c:1891,7'
          Dst:             nla_sec_buffer_alloc
        - Src:             'libfreerdp/core/nla.c:1893,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1897,2'
          Dst:             Stream_StaticInit
        - Src:             'libfreerdp/core/nla.c:1899,8'
          Dst:             WinPrAsn1EncToStream
        - Src:             'libfreerdp/core/nla.c:1902,2'
          Dst:             WinPrAsn1Encoder_Free
    - functionName:    nla_sec_buffer_alloc
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          71
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - sspi_SecBufferAlloc
        - sspi_SecBufferFree
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:174,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:175,2'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/nla.c:178,7'
          Dst:             sspi_SecBufferAlloc
        - Src:             'libfreerdp/core/nla.c:181,2'
          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:    55
      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:    nla_encrypt_ts_credentials
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1907
      functionLinenumberEnd: 1916
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          58
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - credssp_auth_encrypt
        - nla_encode_ts_credentials
        - sspi_SecBufferFree
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1908,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1910,7'
          Dst:             nla_encode_ts_credentials
        - Src:             'libfreerdp/core/nla.c:1913,2'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/nla.c:1914,10'
          Dst:             credssp_auth_encrypt
    - functionName:    nla_client_recv_early_user_auth
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 602
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - nla_set_state
        - transport_set_early_user_auth_mode
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:598,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:600,2'
          Dst:             transport_set_early_user_auth_mode
        - Src:             'libfreerdp/core/nla.c:601,2'
          Dst:             nla_set_state
    - functionName:    nla_set_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2379
      functionLinenumberEnd: 2386
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - nla_get_state_str
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:2383,2'
          Dst:             nla_get_state_str
        - Src:             'libfreerdp/core/nla.c:2383,2'
          Dst:             nla_get_state_str
        - Src:             'libfreerdp/core/nla.c:2383,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    nla_get_state_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2404
      functionLinenumberEnd: 2424
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       18
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nla.c:2405,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    nla_client_recv_pub_key_auth
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 594
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          107
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - nla_decrypt_public_key_echo
        - nla_decrypt_public_key_hash
        - nla_encrypt_ts_credentials
        - nla_send
        - nla_set_state
        - sspi_SecBufferFree
        - transport_set_early_user_auth_mode
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:565,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:569,8'
          Dst:             nla_decrypt_public_key_echo
        - Src:             'libfreerdp/core/nla.c:571,8'
          Dst:             nla_decrypt_public_key_hash
        - Src:             'libfreerdp/core/nla.c:573,2'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/nla.c:579,7'
          Dst:             nla_encrypt_ts_credentials
        - Src:             'libfreerdp/core/nla.c:583,7'
          Dst:             nla_send
        - Src:             'libfreerdp/core/nla.c:588,3'
          Dst:             transport_set_early_user_auth_mode
        - Src:             'libfreerdp/core/nla.c:589,3'
          Dst:             nla_set_state
        - Src:             'libfreerdp/core/nla.c:592,3'
          Dst:             nla_set_state
    - functionName:    nla_decrypt_public_key_echo
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1063
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          106
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - ap_integer_decrement_le
        - credssp_auth_decrypt
        - memcmp
        - sspi_SecBufferFree
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1036,7'
          Dst:             credssp_auth_decrypt
        - Src:             'libfreerdp/core/nla.c:1042,3'
          Dst:             ap_integer_decrement_le
        - Src:             'libfreerdp/core/nla.c:1046,6'
          Dst:             memcmp
        - Src:             'libfreerdp/core/nla.c:1048,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1061,2'
          Dst:             sspi_SecBufferFree
    - functionName:    nla_decrypt_public_key_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1066
      functionLinenumberEnd: 1116
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          165
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_Print_dbg_tag
        - credssp_auth_decrypt
        - memcmp
        - nla_Digest_Update_From_SecBuffer
        - sspi_SecBufferFree
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_New
        - winpr_Digest_Update
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1071,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1078,7'
          Dst:             credssp_auth_decrypt
        - Src:             'libfreerdp/core/nla.c:1082,17'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/nla.c:1085,7'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/nla.c:1089,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/nla.c:1092,7'
          Dst:             nla_Digest_Update_From_SecBuffer
        - Src:             'libfreerdp/core/nla.c:1096,7'
          Dst:             nla_Digest_Update_From_SecBuffer
        - Src:             'libfreerdp/core/nla.c:1099,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/nla.c:1104,6'
          Dst:             memcmp
        - Src:             'libfreerdp/core/nla.c:1106,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1113,2'
          Dst:             winpr_Digest_Free
        - Src:             'libfreerdp/core/nla.c:1114,2'
          Dst:             sspi_SecBufferFree
    - functionName:    nla_send
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1980
      functionLinenumberEnd: 2074
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         112
      ICount:          486
      EdgeCount:       144
      CyclomaticComplexity: 34
      functionsReached:
        - NtStatus2Tag
        - Stream_Free
        - Stream_New
        - WLog_Print_dbg_tag
        - WinPrAsn1EncContextualInteger
        - WinPrAsn1EncContextualSeqContainer
        - WinPrAsn1EncEndContainer
        - WinPrAsn1EncSeqContainer
        - WinPrAsn1EncStreamSize
        - WinPrAsn1EncToStream
        - WinPrAsn1Encoder_Free
        - WinPrAsn1Encoder_New
        - credssp_auth_get_output_buffer
        - credssp_auth_have_output_token
        - nla_get_state
        - nla_write_octet_string
        - nla_write_octet_string_free
        - transport_write
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1986,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1988,8'
          Dst:             WinPrAsn1Encoder_New
        - Src:             'libfreerdp/core/nla.c:1993,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1994,7'
          Dst:             WinPrAsn1EncSeqContainer
        - Src:             'libfreerdp/core/nla.c:1998,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:2000,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2000,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1999,7'
          Dst:             WinPrAsn1EncContextualInteger
        - Src:             'libfreerdp/core/nla.c:2004,6'
          Dst:             nla_get_state
        - Src:             'libfreerdp/core/nla.c:2004,52'
          Dst:             credssp_auth_have_output_token
        - Src:             'libfreerdp/core/nla.c:2006,29'
          Dst:             credssp_auth_get_output_buffer
        - Src:             'libfreerdp/core/nla.c:2008,8'
          Dst:             WinPrAsn1EncContextualSeqContainer
        - Src:             'libfreerdp/core/nla.c:2008,55'
          Dst:             WinPrAsn1EncSeqContainer
        - Src:             'libfreerdp/core/nla.c:2012,8'
          Dst:             nla_write_octet_string
        - Src:             'libfreerdp/core/nla.c:2016,8'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'libfreerdp/core/nla.c:2016,42'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'libfreerdp/core/nla.c:2023,8'
          Dst:             nla_write_octet_string_free
        - Src:             'libfreerdp/core/nla.c:2030,8'
          Dst:             nla_write_octet_string_free
        - Src:             'libfreerdp/core/nla.c:2037,3'
          Dst:             NtStatus2Tag
        - Src:             'libfreerdp/core/nla.c:2037,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:2040,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2040,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2039,8'
          Dst:             WinPrAsn1EncContextualInteger
        - Src:             'libfreerdp/core/nla.c:2047,8'
          Dst:             nla_write_octet_string
        - Src:             'libfreerdp/core/nla.c:2052,7'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'libfreerdp/core/nla.c:2055,7'
          Dst:             WinPrAsn1EncStreamSize
        - Src:             'libfreerdp/core/nla.c:2058,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/nla.c:2062,7'
          Dst:             WinPrAsn1EncToStream
        - Src:             'libfreerdp/core/nla.c:2065,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:2066,6'
          Dst:             transport_write
        - Src:             'libfreerdp/core/nla.c:2071,2'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/nla.c:2072,2'
          Dst:             WinPrAsn1Encoder_Free
    - functionName:    nla_get_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2371
      functionLinenumberEnd: 2376
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nla_write_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1940
      functionLinenumberEnd: 1960
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          103
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - WinPrAsn1EncContextualOctetString
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1943,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1944,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1945,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1952,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1955,8'
          Dst:             WinPrAsn1EncContextualOctetString
    - functionName:    nla_write_octet_string_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1965
      functionLinenumberEnd: 1968
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nla_write_octet_string
        - sspi_SecBufferFree
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1966,18'
          Dst:             nla_write_octet_string
        - Src:             'libfreerdp/core/nla.c:1967,2'
          Dst:             sspi_SecBufferFree
    - functionName:    nla_Digest_Update_From_SecBuffer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_Digest_Update
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:169,9'
          Dst:             winpr_Digest_Update
    - functionName:    ap_integer_decrement_le
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 936
      functionLinenumberEnd: 952
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          81
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:937,2'
          Dst:             winpr_int_assert
    - functionName:    nla_client_recv_nego_token
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 526
      functionLinenumberEnd: 559
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          99
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - credssp_auth_authenticate
        - credssp_auth_take_input_buffer
        - nla_encrypt_public_key_echo
        - nla_encrypt_public_key_hash
        - nla_send
        - nla_set_state
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nla.c:530,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:527,2'
          Dst:             credssp_auth_take_input_buffer
        - Src:             'libfreerdp/core/nla.c:528,17'
          Dst:             credssp_auth_authenticate
        - Src:             'libfreerdp/core/nla.c:533,9'
          Dst:             nla_send
        - Src:             'libfreerdp/core/nla.c:540,11'
          Dst:             nla_encrypt_public_key_echo
        - Src:             'libfreerdp/core/nla.c:542,11'
          Dst:             nla_encrypt_public_key_hash
        - Src:             'libfreerdp/core/nla.c:547,9'
          Dst:             nla_send
        - Src:             'libfreerdp/core/nla.c:550,4'
          Dst:             nla_set_state
    - functionName:    nla_encrypt_public_key_echo
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 978
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          96
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - ap_integer_increment_le
        - credssp_auth_encrypt
        - sspi_SecBufferAlloc
        - sspi_SecBufferFree
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:958,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:960,2'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/nla.c:964,8'
          Dst:             sspi_SecBufferAlloc
        - Src:             'libfreerdp/core/nla.c:966,3'
          Dst:             ap_integer_increment_le
        - Src:             'libfreerdp/core/nla.c:968,7'
          Dst:             credssp_auth_encrypt
        - Src:             'libfreerdp/core/nla.c:969,3'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/nla.c:973,12'
          Dst:             credssp_auth_encrypt
    - functionName:    nla_encrypt_public_key_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 981
      functionLinenumberEnd: 1026
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          152
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - credssp_auth_encrypt
        - nla_Digest_Update_From_SecBuffer
        - sspi_SecBufferAlloc
        - sspi_SecBufferFree
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_New
        - winpr_Digest_Update
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:986,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:992,7'
          Dst:             sspi_SecBufferAlloc
        - Src:             'libfreerdp/core/nla.c:996,17'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/nla.c:999,7'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/nla.c:1003,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/nla.c:1006,7'
          Dst:             nla_Digest_Update_From_SecBuffer
        - Src:             'libfreerdp/core/nla.c:1010,7'
          Dst:             nla_Digest_Update_From_SecBuffer
        - Src:             'libfreerdp/core/nla.c:1013,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/nla.c:1016,2'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/nla.c:1017,7'
          Dst:             credssp_auth_encrypt
        - Src:             'libfreerdp/core/nla.c:1023,2'
          Dst:             winpr_Digest_Free
        - Src:             'libfreerdp/core/nla.c:1024,2'
          Dst:             sspi_SecBufferFree
    - functionName:    ap_integer_increment_le
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 917
      functionLinenumberEnd: 933
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          81
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:918,2'
          Dst:             winpr_int_assert
    - 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_ResetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1358,3'
          Dst:             winpr_int_assert
    - functionName:    nla_credentialTypeValid
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1247
      functionLinenumberEnd: 1260
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          48
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nla.c:1248,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1257,4'
          Dst:             WLog_Print_dbg_tag
    - 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_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    nla_messageTypeValid
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1168
      functionLinenumberEnd: 1196
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          84
      EdgeCount:       39
      CyclomaticComplexity: 21
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nla.c:1169,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1193,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    Stream_Get_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u32_le
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:413,10'
          Dst:             stream_read_u32_le
    - 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:    5
      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_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:    nla_read_NtlmCreds
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1266
      functionLinenumberEnd: 1304
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          217
      EdgeCount:       55
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetPosition
        - Stream_Get_UINT32
        - Stream_Read
        - Stream_Seek
        - Stream_SetPosition
        - calloc
        - nla_credentialTypeValid
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1268,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1270,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/nla.c:1273,15'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/nla.c:1274,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/nla.c:1276,29'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/nla.c:1277,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/nla.c:1280,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/nla.c:1283,87'
          Dst:             calloc
        - Src:             'libfreerdp/core/nla.c:1288,17'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/nla.c:1289,15'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/nla.c:1290,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/nla.c:1292,22'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/nla.c:1293,8'
          Dst:             nla_credentialTypeValid
        - Src:             'libfreerdp/core/nla.c:1298,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1298,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1301,2'
          Dst:             Stream_Read
    - functionName:    nla_read_KERB_TICKET_LOGON
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1200
      functionLinenumberEnd: 1244
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          143
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Get_UINT32
        - Stream_Pointer
        - Stream_Seek
        - WLog_Print_dbg_tag
        - nla_messageTypeValid
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1201,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1207,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/nla.c:1211,23'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/nla.c:1212,8'
          Dst:             nla_messageTypeValid
        - Src:             'libfreerdp/core/nla.c:1217,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/nla.c:1218,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/nla.c:1219,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/nla.c:1223,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1227,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/nla.c:1232,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/nla.c:1236,26'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/nla.c:1237,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/nla.c:1242,33'
          Dst:             Stream_Pointer
    - functionName:    nla_read_TSRemoteGuardPackageCred
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1317
      functionLinenumberEnd: 1358
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          164
      EdgeCount:       50
      CyclomaticComplexity: 8
      functionsReached:
        - ConvertMszWCharNToUtf8
        - Stream_StaticInit
        - WLog_Print_dbg_tag
        - WinPrAsn1DecReadContextualOctetString
        - _stricmp
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1323,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1324,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1325,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1326,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1331,7'
          Dst:             WinPrAsn1DecReadContextualOctetString
        - Src:             'libfreerdp/core/nla.c:1334,2'
          Dst:             ConvertMszWCharNToUtf8
        - Src:             'libfreerdp/core/nla.c:1336,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1339,7'
          Dst:             WinPrAsn1DecReadContextualOctetString
        - Src:             'libfreerdp/core/nla.c:1342,6'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/nla.c:1346,11'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/nla.c:1352,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1356,2'
          Dst:             Stream_StaticInit
    - functionName:    nla_read_TSCspDataDetail
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1142
      functionLinenumberEnd: 1165
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - WinPrAsn1DecReadContextualInteger
        - set_creds_octetstring_to_settings
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1147,7'
          Dst:             WinPrAsn1DecReadContextualInteger
        - Src:             'libfreerdp/core/nla.c:1152,7'
          Dst:             set_creds_octetstring_to_settings
        - Src:             'libfreerdp/core/nla.c:1156,7'
          Dst:             set_creds_octetstring_to_settings
        - Src:             'libfreerdp/core/nla.c:1160,7'
          Dst:             set_creds_octetstring_to_settings
        - Src:             'libfreerdp/core/nla.c:1164,9'
          Dst:             set_creds_octetstring_to_settings
    - functionName:    set_creds_octetstring_to_settings
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1121
      functionLinenumberEnd: 1139
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          87
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - WinPrAsn1DecPeekTag
        - WinPrAsn1DecReadContextualOctetString
        - freerdp_settings_set_string_from_utf16N
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1125,8'
          Dst:             WinPrAsn1DecPeekTag
        - Src:             'libfreerdp/core/nla.c:1134,7'
          Dst:             WinPrAsn1DecReadContextualOctetString
        - Src:             'libfreerdp/core/nla.c:1137,9'
          Dst:             freerdp_settings_set_string_from_utf16N
    - 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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/asn1.h:79,25'
          Dst:             Stream_Init
    - functionName:    nla_read_ts_credentials
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1370
      functionLinenumberEnd: 1536
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         86
      ICount:          456
      EdgeCount:       114
      CyclomaticComplexity: 30
      functionsReached:
        - Stream_GetRemainingLength
        - WLog_Print_dbg_tag
        - WinPrAsn1DecReadContextualInteger
        - WinPrAsn1DecReadContextualOctetString
        - WinPrAsn1DecReadContextualSequence
        - WinPrAsn1DecReadSequence
        - WinPrAsn1Decoder_InitMem
        - WinPrAsn1Decoder_init
        - nego_get_remoteCredentialGuard
        - nla_read_KERB_TICKET_LOGON
        - nla_read_NtlmCreds
        - nla_read_TSCspDataDetail
        - nla_read_TSRemoteGuardPackageCred
        - set_creds_octetstring_to_settings
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nla.c:1406,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1371,25'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'libfreerdp/core/nla.c:1372,26'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'libfreerdp/core/nla.c:1378,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1379,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1381,2'
          Dst:             WinPrAsn1Decoder_InitMem
        - Src:             'libfreerdp/core/nla.c:1384,7'
          Dst:             WinPrAsn1DecReadSequence
        - Src:             'libfreerdp/core/nla.c:1389,7'
          Dst:             WinPrAsn1DecReadContextualInteger
        - Src:             'libfreerdp/core/nla.c:1393,7'
          Dst:             WinPrAsn1DecReadContextualOctetString
        - Src:             'libfreerdp/core/nla.c:1396,2'
          Dst:             WinPrAsn1Decoder_InitMem
        - Src:             'libfreerdp/core/nla.c:1399,6'
          Dst:             nego_get_remoteCredentialGuard
        - Src:             'libfreerdp/core/nla.c:1402,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1411,9'
          Dst:             WinPrAsn1DecReadSequence
        - Src:             'libfreerdp/core/nla.c:1416,9'
          Dst:             set_creds_octetstring_to_settings
        - Src:             'libfreerdp/core/nla.c:1420,9'
          Dst:             set_creds_octetstring_to_settings
        - Src:             'libfreerdp/core/nla.c:1424,11'
          Dst:             set_creds_octetstring_to_settings
        - Src:             'libfreerdp/core/nla.c:1429,9'
          Dst:             WinPrAsn1DecReadSequence
        - Src:             'libfreerdp/core/nla.c:1434,9'
          Dst:             set_creds_octetstring_to_settings
        - Src:             'libfreerdp/core/nla.c:1439,34'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'libfreerdp/core/nla.c:1440,9'
          Dst:             WinPrAsn1DecReadContextualSequence
        - Src:             'libfreerdp/core/nla.c:1442,9'
          Dst:             nla_read_TSCspDataDetail
        - Src:             'libfreerdp/core/nla.c:1446,9'
          Dst:             set_creds_octetstring_to_settings
        - Src:             'libfreerdp/core/nla.c:1450,11'
          Dst:             set_creds_octetstring_to_settings
        - Src:             'libfreerdp/core/nla.c:1455,9'
          Dst:             WinPrAsn1DecReadSequence
        - Src:             'libfreerdp/core/nla.c:1466,37'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'libfreerdp/core/nla.c:1468,9'
          Dst:             WinPrAsn1DecReadContextualSequence
        - Src:             'libfreerdp/core/nla.c:1473,9'
          Dst:             nla_read_TSRemoteGuardPackageCred
        - Src:             'libfreerdp/core/nla.c:1478,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1482,9'
          Dst:             nla_read_KERB_TICKET_LOGON
        - Src:             'libfreerdp/core/nla.c:1484,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1490,36'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'libfreerdp/core/nla.c:1492,8'
          Dst:             WinPrAsn1DecReadContextualSequence
        - Src:             'libfreerdp/core/nla.c:1493,8'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/nla.c:1495,37'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'libfreerdp/core/nla.c:1496,10'
          Dst:             WinPrAsn1DecReadSequence
        - Src:             'libfreerdp/core/nla.c:1501,10'
          Dst:             nla_read_TSRemoteGuardPackageCred
        - Src:             'libfreerdp/core/nla.c:1507,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1511,17'
          Dst:             nla_read_NtlmCreds
        - Src:             'libfreerdp/core/nla.c:1514,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1520,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1525,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1530,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    nla_decrypt_ts_credentials
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1919
      functionLinenumberEnd: 1936
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          81
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - credssp_auth_decrypt
        - nla_read_ts_credentials
        - sspi_SecBufferFree
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:1920,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:1924,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:1928,2'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/nla.c:1929,7'
          Dst:             credssp_auth_decrypt
        - Src:             'libfreerdp/core/nla.c:1932,7'
          Dst:             nla_read_ts_credentials
    - functionName:    nla_server_recv_stream
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 723
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          69
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Free
        - Stream_New
        - WLog_Print_dbg_tag
        - transport_read_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:705,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:707,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/nla.c:712,11'
          Dst:             transport_read_pdu
        - Src:             'libfreerdp/core/nla.c:717,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:718,3'
          Dst:             Stream_Free
    - functionName:    nla_server_recv_credentials
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          72
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - nla_decrypt_ts_credentials
        - nla_impersonate
        - nla_revert_to_self
        - nla_server_recv
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:727,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:729,6'
          Dst:             nla_server_recv
        - Src:             'libfreerdp/core/nla.c:732,7'
          Dst:             nla_decrypt_ts_credentials
        - Src:             'libfreerdp/core/nla.c:735,7'
          Dst:             nla_impersonate
        - Src:             'libfreerdp/core/nla.c:738,7'
          Dst:             nla_revert_to_self
    - functionName:    nla_server_recv
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2271
      functionLinenumberEnd: 2283
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Free
        - nla_decode_ts_request
        - nla_server_recv_stream
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:2274,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2276,15'
          Dst:             nla_server_recv_stream
        - Src:             'libfreerdp/core/nla.c:2279,11'
          Dst:             nla_decode_ts_request
        - Src:             'libfreerdp/core/nla.c:2282,2'
          Dst:             Stream_Free
    - functionName:    nla_impersonate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2394
      functionLinenumberEnd: 2395
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - credssp_auth_impersonate
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:2395,9'
          Dst:             credssp_auth_impersonate
    - functionName:    nla_revert_to_self
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2399
      functionLinenumberEnd: 2400
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - credssp_auth_revert_to_self
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:2400,9'
          Dst:             credssp_auth_revert_to_self
    - functionName:    nla_decode_ts_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2077
      functionLinenumberEnd: 2182
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         63
      ICount:          324
      EdgeCount:       80
      CyclomaticComplexity: 19
      functionsReached:
        - NtStatus2Tag
        - Stream_SafeSeekEx
        - WLog_Print_dbg_tag
        - WinPrAsn1DecReadContextualInteger
        - WinPrAsn1DecReadContextualOctetString
        - WinPrAsn1DecReadContextualTag
        - WinPrAsn1DecReadInteger
        - WinPrAsn1DecReadOctetString
        - WinPrAsn1DecReadSequence
        - WinPrAsn1Decoder_Init
        - WinPrAsn1Decoder_init
        - nla_sec_buffer_alloc_from_data
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nla.c:2124,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:2078,25'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'libfreerdp/core/nla.c:2079,26'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'libfreerdp/core/nla.c:2085,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2086,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2088,2'
          Dst:             WinPrAsn1Decoder_Init
        - Src:             'libfreerdp/core/nla.c:2090,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:2093,24'
          Dst:             WinPrAsn1DecReadSequence
        - Src:             'libfreerdp/core/nla.c:2099,6'
          Dst:             WinPrAsn1DecReadContextualInteger
        - Src:             'libfreerdp/core/nla.c:2102,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/nla.c:2106,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:2114,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:2119,9'
          Dst:             WinPrAsn1DecReadContextualTag
        - Src:             'libfreerdp/core/nla.c:2121,27'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'libfreerdp/core/nla.c:2127,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:2129,10'
          Dst:             WinPrAsn1DecReadSequence
        - Src:             'libfreerdp/core/nla.c:2130,10'
          Dst:             WinPrAsn1DecReadSequence
        - Src:             'libfreerdp/core/nla.c:2133,10'
          Dst:             WinPrAsn1DecReadContextualOctetString
        - Src:             'libfreerdp/core/nla.c:2137,10'
          Dst:             nla_sec_buffer_alloc_from_data
        - Src:             'libfreerdp/core/nla.c:2142,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:2144,9'
          Dst:             WinPrAsn1DecReadOctetString
        - Src:             'libfreerdp/core/nla.c:2146,10'
          Dst:             nla_sec_buffer_alloc_from_data
        - Src:             'libfreerdp/core/nla.c:2151,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:2153,9'
          Dst:             WinPrAsn1DecReadOctetString
        - Src:             'libfreerdp/core/nla.c:2155,10'
          Dst:             nla_sec_buffer_alloc_from_data
        - Src:             'libfreerdp/core/nla.c:2161,9'
          Dst:             WinPrAsn1DecReadInteger
        - Src:             'libfreerdp/core/nla.c:2164,5'
          Dst:             NtStatus2Tag
        - Src:             'libfreerdp/core/nla.c:2164,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:2168,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:2170,9'
          Dst:             WinPrAsn1DecReadOctetString
        - Src:             'libfreerdp/core/nla.c:2172,10'
          Dst:             nla_sec_buffer_alloc_from_data
    - functionName:    nla_sec_buffer_alloc_from_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          62
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - nla_sec_buffer_alloc
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:189,7'
          Dst:             nla_sec_buffer_alloc
        - Src:             'libfreerdp/core/nla.c:192,2'
          Dst:             winpr_int_assert
    - functionName:    nla_server_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 698
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          90
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - credssp_auth_init
        - credssp_auth_setup_server
        - nla_sec_buffer_alloc_from_data
        - nla_set_state
        - transport_get_public_key
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:674,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:678,7'
          Dst:             transport_get_public_key
        - Src:             'libfreerdp/core/nla.c:680,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:684,7'
          Dst:             nla_sec_buffer_alloc_from_data
        - Src:             'libfreerdp/core/nla.c:686,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:690,7'
          Dst:             credssp_auth_init
        - Src:             'libfreerdp/core/nla.c:693,7'
          Dst:             credssp_auth_setup_server
        - Src:             'libfreerdp/core/nla.c:696,2'
          Dst:             nla_set_state
    - functionName:    nla_client_setup_identity
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 298
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         106
      ICount:          503
      EdgeCount:       132
      CyclomaticComplexity: 28
      functionsReached:
        - SamClose
        - SamFreeEntry
        - SamLookupUserA
        - SamOpen
        - WLog_Print_dbg_tag
        - _wcsnlen
        - freerdp_set_last_error_ex
        - identity_set_from_settings
        - identity_set_from_settings_with_pwd
        - identity_set_from_smartcard_hash
        - nla_adjust_settings_from_smartcard
        - sspi_FreeAuthIdentity
        - strlen
        - strnlen
        - utils_authenticate
        - utils_str_is_empty
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nla.c:356,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:301,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:302,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:305,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:308,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:311,7'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/nla.c:312,8'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/nla.c:313,8'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/nla.c:318,25'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/nla.c:320,20'
          Dst:             SamOpen
        - Src:             'libfreerdp/core/nla.c:323,38'
          Dst:             strnlen
        - Src:             'libfreerdp/core/nla.c:325,8'
          Dst:             SamLookupUserA
        - Src:             'libfreerdp/core/nla.c:334,5'
          Dst:             SamFreeEntry
        - Src:             'libfreerdp/core/nla.c:337,4'
          Dst:             SamClose
        - Src:             'libfreerdp/core/nla.c:345,37'
          Dst:             strlen
        - Src:             'libfreerdp/core/nla.c:356,11'
          Dst:             utils_authenticate
        - Src:             'libfreerdp/core/nla.c:362,5'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/nla.c:365,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:374,3'
          Dst:             sspi_FreeAuthIdentity
        - Src:             'libfreerdp/core/nla.c:382,9'
          Dst:             nla_adjust_settings_from_smartcard
        - Src:             'libfreerdp/core/nla.c:386,8'
          Dst:             identity_set_from_smartcard_hash
        - Src:             'libfreerdp/core/nla.c:398,23'
          Dst:             _wcsnlen
        - Src:             'libfreerdp/core/nla.c:400,9'
          Dst:             identity_set_from_settings_with_pwd
        - Src:             'libfreerdp/core/nla.c:409,34'
          Dst:             strlen
        - Src:             'libfreerdp/core/nla.c:411,10'
          Dst:             identity_set_from_settings
        - Src:             'libfreerdp/core/nla.c:422,9'
          Dst:             identity_set_from_settings
    - functionName:    nla_adjust_settings_from_smartcard
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         53
      ICount:          260
      EdgeCount:       66
      CyclomaticComplexity: 15
      functionsReached:
        - WLog_Print_dbg_tag
        - _strdup
        - freerdp_settings_get_string
        - freerdp_settings_get_uint32
        - freerdp_settings_set_string_from_utf16
        - freerdp_settings_set_uint32
        - smartcardCertInfo_Free
        - smartcard_getCert
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:218,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:219,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:222,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:227,2'
          Dst:             smartcardCertInfo_Free
        - Src:             'libfreerdp/core/nla.c:229,7'
          Dst:             smartcard_getCert
        - Src:             'libfreerdp/core/nla.c:231,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:239,8'
          Dst:             freerdp_settings_set_string_from_utf16
        - Src:             'libfreerdp/core/nla.c:242,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:249,8'
          Dst:             freerdp_settings_set_string_from_utf16
        - Src:             'libfreerdp/core/nla.c:252,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:259,8'
          Dst:             freerdp_settings_set_string_from_utf16
        - Src:             'libfreerdp/core/nla.c:262,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:268,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/nla.c:270,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:274,2'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/nla.c:274,2'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/nla.c:274,2'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/nla.c:274,2'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/nla.c:274,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:284,21'
          Dst:             _strdup
        - Src:             'libfreerdp/core/nla.c:287,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    nla_FreeContextBuffer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2467
      functionLinenumberEnd: 2474
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - credssp_auth_tableAndContext
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:2468,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2472,2'
          Dst:             credssp_auth_tableAndContext
    - functionName:    nla_QueryContextAttributes
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2456
      functionLinenumberEnd: 2463
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - credssp_auth_tableAndContext
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:2457,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2461,2'
          Dst:             credssp_auth_tableAndContext
    - functionName:    nla_decrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2448
      functionLinenumberEnd: 2452
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          67
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - credssp_auth_decrypt
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:2449,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2450,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2451,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2452,9'
          Dst:             credssp_auth_decrypt
    - functionName:    nla_encrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2440
      functionLinenumberEnd: 2444
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          67
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - credssp_auth_encrypt
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:2441,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2442,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2443,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2444,9'
          Dst:             credssp_auth_encrypt
    - functionName:    nla_get_sspi_error
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2434
      functionLinenumberEnd: 2436
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - credssp_auth_sspi_error
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:2435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2436,9'
          Dst:             credssp_auth_sspi_error
    - functionName:    nla_get_error
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2427
      functionLinenumberEnd: 2431
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nla_set_service_principal
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2389
      functionLinenumberEnd: 2390
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - credssp_auth_set_spn
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:2390,10'
          Dst:             credssp_auth_set_spn
    - functionName:    nla_get_identity
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2363
      functionLinenumberEnd: 2368
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nla_buffer_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - sspi_SecBufferFree
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:157,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:158,2'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/nla.c:159,2'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/nla.c:160,2'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/nla.c:161,2'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/nla.c:162,2'
          Dst:             sspi_SecBufferFree
    - functionName:    nla_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2347
      functionLinenumberEnd: 2360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - credssp_auth_free
        - nla_buffer_free
        - smartcardCertInfo_Free
        - sspi_FreeAuthIdentity
        - sspi_SecBufferFree
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:2351,2'
          Dst:             smartcardCertInfo_Free
        - Src:             'libfreerdp/core/nla.c:2352,2'
          Dst:             nla_buffer_free
        - Src:             'libfreerdp/core/nla.c:2353,2'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/nla.c:2354,2'
          Dst:             credssp_auth_free
        - Src:             'libfreerdp/core/nla.c:2356,2'
          Dst:             sspi_FreeAuthIdentity
    - functionName:    nla_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2296
      functionLinenumberEnd: 2339
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          154
      EdgeCount:       38
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - credssp_auth_new
        - nla_free
        - nla_sec_buffer_alloc
        - winpr_RAND
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:2297,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2298,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2301,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2303,25'
          Dst:             calloc
        - Src:             'libfreerdp/core/nla.c:2316,18'
          Dst:             calloc
        - Src:             'libfreerdp/core/nla.c:2320,14'
          Dst:             credssp_auth_new
        - Src:             'libfreerdp/core/nla.c:2325,7'
          Dst:             nla_sec_buffer_alloc
        - Src:             'libfreerdp/core/nla.c:2329,6'
          Dst:             winpr_RAND
        - Src:             'libfreerdp/core/nla.c:2336,2'
          Dst:             nla_free
    - functionName:    nla_client_recv
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          67
      EdgeCount:       31
      CyclomaticComplexity: 17
      functionsReached:
        - WLog_Print_dbg_tag
        - nla_client_recv_early_user_auth
        - nla_client_recv_nego_token
        - nla_client_recv_pub_key_auth
        - nla_get_state
        - nla_get_state_str
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nla.c:609,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:607,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:609,10'
          Dst:             nla_get_state
        - Src:             'libfreerdp/core/nla.c:612,11'
          Dst:             nla_client_recv_nego_token
        - Src:             'libfreerdp/core/nla.c:615,11'
          Dst:             nla_client_recv_pub_key_auth
        - Src:             'libfreerdp/core/nla.c:618,11'
          Dst:             nla_client_recv_early_user_auth
        - Src:             'libfreerdp/core/nla.c:622,4'
          Dst:             nla_get_state
        - Src:             'libfreerdp/core/nla.c:622,4'
          Dst:             nla_get_state_str
        - Src:             'libfreerdp/core/nla.c:622,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    nla_recv_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2185
      functionLinenumberEnd: 2268
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          179
      EdgeCount:       43
      CyclomaticComplexity: 5
      functionsReached:
        - NtStatus2Tag
        - WLog_Print_dbg_tag
        - freerdp_set_last_error_ex
        - nla_client_recv
        - nla_decode_ts_request
        - nla_get_state
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nla.c:2212,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:2186,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2187,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:2189,6'
          Dst:             nla_get_state
        - Src:             'libfreerdp/core/nla.c:2192,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/nla.c:2195,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:2197,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/nla.c:2201,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:2205,7'
          Dst:             nla_decode_ts_request
        - Src:             'libfreerdp/core/nla.c:2255,6'
          Dst:             NtStatus2Tag
        - Src:             'libfreerdp/core/nla.c:2255,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:2262,4'
          Dst:             freerdp_set_last_error_ex
        - Src:             'libfreerdp/core/nla.c:2267,9'
          Dst:             nla_client_recv
    - functionName:    nla_client_authenticate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 629
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          100
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_Free
        - Stream_New
        - Stream_ResetPosition
        - WLog_Print_dbg_tag
        - nla_client_begin
        - nla_get_state
        - nla_recv_pdu
        - transport_read_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:632,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:634,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/nla.c:638,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:642,6'
          Dst:             nla_client_begin
        - Src:             'libfreerdp/core/nla.c:645,9'
          Dst:             nla_get_state
        - Src:             'libfreerdp/core/nla.c:647,3'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/nla.c:648,22'
          Dst:             transport_read_pdu
        - Src:             'libfreerdp/core/nla.c:652,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:656,23'
          Dst:             nla_recv_pdu
        - Src:             'libfreerdp/core/nla.c:664,2'
          Dst:             Stream_Free
    - functionName:    nla_client_begin
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          133
      EdgeCount:       33
      CyclomaticComplexity: 5
      functionsReached:
        - credssp_auth_authenticate
        - credssp_auth_have_output_token
        - credssp_auth_set_flags
        - credssp_auth_sspi_error
        - freerdp_set_last_error_ex
        - nla_client_init
        - nla_get_state
        - nla_send
        - nla_set_state
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nla.c:493,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/nla.c:509,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:474,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:476,6'
          Dst:             nla_client_init
        - Src:             'libfreerdp/core/nla.c:479,6'
          Dst:             nla_get_state
        - Src:             'libfreerdp/core/nla.c:489,2'
          Dst:             credssp_auth_set_flags
        - Src:             'libfreerdp/core/nla.c:491,17'
          Dst:             credssp_auth_authenticate
        - Src:             'libfreerdp/core/nla.c:496,9'
          Dst:             nla_send
        - Src:             'libfreerdp/core/nla.c:498,4'
          Dst:             nla_set_state
        - Src:             'libfreerdp/core/nla.c:501,8'
          Dst:             credssp_auth_have_output_token
        - Src:             'libfreerdp/core/nla.c:503,10'
          Dst:             nla_send
        - Src:             'libfreerdp/core/nla.c:506,4'
          Dst:             nla_set_state
        - Src:             'libfreerdp/core/nla.c:509,12'
          Dst:             credssp_auth_sspi_error
        - Src:             'libfreerdp/core/nla.c:513,6'
          Dst:             freerdp_set_last_error_ex
    - functionName:    nla_client_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          154
      EdgeCount:       40
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - credssp_auth_init
        - credssp_auth_setup_client
        - freerdp_settings_get_server_name
        - nla_adjust_settings_from_smartcard
        - nla_client_setup_identity
        - nla_sec_buffer_alloc_from_data
        - nla_set_state
        - transport_get_public_key
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:433,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:437,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:439,2'
          Dst:             nla_set_state
        - Src:             'libfreerdp/core/nla.c:441,7'
          Dst:             nla_adjust_settings_from_smartcard
        - Src:             'libfreerdp/core/nla.c:444,7'
          Dst:             credssp_auth_init
        - Src:             'libfreerdp/core/nla.c:447,7'
          Dst:             nla_client_setup_identity
        - Src:             'libfreerdp/core/nla.c:450,25'
          Dst:             freerdp_settings_get_server_name
        - Src:             'libfreerdp/core/nla.c:452,7'
          Dst:             credssp_auth_setup_client
        - Src:             'libfreerdp/core/nla.c:457,7'
          Dst:             transport_get_public_key
        - Src:             'libfreerdp/core/nla.c:459,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:463,7'
          Dst:             nla_sec_buffer_alloc_from_data
        - Src:             'libfreerdp/core/nla.c:465,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    nla_server_authenticate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 752
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         53
      ICount:          267
      EdgeCount:       67
      CyclomaticComplexity: 16
      functionsReached:
        - GetLastError
        - GetSecurityStatusString
        - WLog_Print_dbg_tag
        - credssp_auth_authenticate
        - credssp_auth_have_output_token
        - credssp_auth_pkg_name
        - credssp_auth_set_flags
        - credssp_auth_sspi_error
        - credssp_auth_take_input_buffer
        - nla_buffer_free
        - nla_decrypt_public_key_echo
        - nla_decrypt_public_key_hash
        - nla_encrypt_public_key_echo
        - nla_encrypt_public_key_hash
        - nla_send
        - nla_server_init
        - nla_server_recv
        - nla_server_recv_credentials
        - sspi_SecBufferFree
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nla.c:813,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:755,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:757,6'
          Dst:             nla_server_init
        - Src:             'libfreerdp/core/nla.c:766,2'
          Dst:             credssp_auth_set_flags
        - Src:             'libfreerdp/core/nla.c:800,7'
          Dst:             nla_server_recv
        - Src:             'libfreerdp/core/nla.c:803,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:804,3'
          Dst:             credssp_auth_take_input_buffer
        - Src:             'libfreerdp/core/nla.c:806,9'
          Dst:             credssp_auth_authenticate
        - Src:             'libfreerdp/core/nla.c:813,12'
          Dst:             GetLastError
        - Src:             'libfreerdp/core/nla.c:830,25'
          Dst:             credssp_auth_sspi_error
        - Src:             'libfreerdp/core/nla.c:832,7'
          Dst:             credssp_auth_pkg_name
        - Src:             'libfreerdp/core/nla.c:832,7'
          Dst:             GetSecurityStatusString
        - Src:             'libfreerdp/core/nla.c:832,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:838,10'
          Dst:             nla_send
        - Src:             'libfreerdp/core/nla.c:846,8'
          Dst:             credssp_auth_have_output_token
        - Src:             'libfreerdp/core/nla.c:848,10'
          Dst:             nla_send
        - Src:             'libfreerdp/core/nla.c:851,9'
          Dst:             nla_server_recv
        - Src:             'libfreerdp/core/nla.c:854,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:858,11'
          Dst:             nla_decrypt_public_key_echo
        - Src:             'libfreerdp/core/nla.c:860,11'
          Dst:             nla_decrypt_public_key_hash
        - Src:             'libfreerdp/core/nla.c:866,4'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/nla.c:869,11'
          Dst:             nla_encrypt_public_key_echo
        - Src:             'libfreerdp/core/nla.c:871,11'
          Dst:             nla_encrypt_public_key_hash
        - Src:             'libfreerdp/core/nla.c:878,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/nla.c:880,8'
          Dst:             nla_send
        - Src:             'libfreerdp/core/nla.c:891,7'
          Dst:             nla_server_recv_credentials
        - Src:             'libfreerdp/core/nla.c:895,2'
          Dst:             nla_buffer_free
    - functionName:    nla_authenticate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 907
      functionLinenumberEnd: 914
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          47
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - nla_client_authenticate
        - nla_server_authenticate
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:908,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:911,10'
          Dst:             nla_server_authenticate
        - Src:             'libfreerdp/core/nla.c:913,10'
          Dst:             nla_client_authenticate
    - functionName:    nla_set_early_user_auth
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nla.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nla.c:150,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nla.c:151,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    add_cert_to_list
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          99
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - _wcscmp
        - realloc
        - smartcardCertInfo_Free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:136,7'
          Dst:             _wcscmp
        - Src:             'libfreerdp/core/smartcardlogon.c:138,4'
          Dst:             smartcardCertInfo_Free
        - Src:             'libfreerdp/core/smartcardlogon.c:144,58'
          Dst:             realloc
        - Src:             'libfreerdp/core/smartcardlogon.c:148,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    smartcardCertInfo_Free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          74
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_certificate_free
        - smartcardKeyInfo_Free
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:99,2'
          Dst:             freerdp_certificate_free
        - Src:             'libfreerdp/core/smartcardlogon.c:108,2'
          Dst:             smartcardKeyInfo_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:    41
      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:    smartcardKeyInfo_Free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - delete_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:86,2'
          Dst:             delete_file
        - Src:             'libfreerdp/core/smartcardlogon.c:87,2'
          Dst:             delete_file
    - functionName:    delete_file
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          127
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - _fseeki64
        - _ftelli64
        - fclose
        - fwrite
        - winpr_DeleteFile
        - winpr_fopen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:53,14'
          Dst:             winpr_fopen
        - Src:             'libfreerdp/core/smartcardlogon.c:58,13'
          Dst:             _fseeki64
        - Src:             'libfreerdp/core/smartcardlogon.c:60,12'
          Dst:             _ftelli64
        - Src:             'libfreerdp/core/smartcardlogon.c:61,8'
          Dst:             _fseeki64
        - Src:             'libfreerdp/core/smartcardlogon.c:67,27'
          Dst:             fwrite
        - Src:             'libfreerdp/core/smartcardlogon.c:73,10'
          Dst:             fclose
        - Src:             'libfreerdp/core/smartcardlogon.c:77,2'
          Dst:             winpr_DeleteFile
    - 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:    _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:    build_pkinit_args
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          105
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - strchr
        - winpr_NCryptGetModulePath
        - winpr_asprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:257,25'
          Dst:             winpr_NCryptGetModulePath
        - Src:             'libfreerdp/core/smartcardlogon.c:267,33'
          Dst:             strchr
        - Src:             'libfreerdp/core/smartcardlogon.c:273,11'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/core/smartcardlogon.c:277,10'
          Dst:             winpr_asprintf
    - functionName:    set_info_certificate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          199
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_certificate_check_eku
        - freerdp_certificate_new_from_der
        - strcmp
        - treat_sc_cert
        - winpr_Digest
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:204,7'
          Dst:             winpr_Digest
        - Src:             'libfreerdp/core/smartcardlogon.c:207,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:211,22'
          Dst:             freerdp_certificate_new_from_der
        - Src:             'libfreerdp/core/smartcardlogon.c:214,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:218,7'
          Dst:             freerdp_certificate_check_eku
        - Src:             'libfreerdp/core/smartcardlogon.c:220,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:225,7'
          Dst:             treat_sc_cert
        - Src:             'libfreerdp/core/smartcardlogon.c:227,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:231,36'
          Dst:             strcmp
        - Src:             'libfreerdp/core/smartcardlogon.c:233,25'
          Dst:             strcmp
        - Src:             'libfreerdp/core/smartcardlogon.c:235,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:241,42'
          Dst:             strcmp
        - Src:             'libfreerdp/core/smartcardlogon.c:243,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    treat_sc_cert
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          165
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - _strdup
        - freerdp_certificate_get_email
        - freerdp_certificate_get_issuer
        - freerdp_certificate_get_subject
        - freerdp_certificate_get_upn
        - strchr
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:162,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/smartcardlogon.c:164,16'
          Dst:             freerdp_certificate_get_upn
        - Src:             'libfreerdp/core/smartcardlogon.c:167,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:168,17'
          Dst:             freerdp_certificate_get_email
        - Src:             'libfreerdp/core/smartcardlogon.c:174,23'
          Dst:             strchr
        - Src:             'libfreerdp/core/smartcardlogon.c:178,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:184,24'
          Dst:             _strdup
        - Src:             'libfreerdp/core/smartcardlogon.c:188,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:196,20'
          Dst:             freerdp_certificate_get_subject
        - Src:             'libfreerdp/core/smartcardlogon.c:197,19'
          Dst:             freerdp_certificate_get_issuer
    - functionName:    list_provider_keys
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          427
      EdgeCount:       73
      CyclomaticComplexity: 23
      functionsReached:
        - ConvertWCharToUtf8
        - ConvertWCharToUtf8Alloc
        - NCryptEnumKeys
        - NCryptFreeBuffer
        - NCryptFreeObject
        - NCryptGetProperty
        - NCryptOpenKey
        - WLog_Print_dbg_tag
        - _wcsdup
        - add_cert_to_list
        - build_pkinit_args
        - calloc
        - set_info_certificate
        - smartcardCertInfo_Free
        - winpr_NCryptSecurityStatusError
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:412,9'
          Dst:             NCryptEnumKeys
        - Src:             'libfreerdp/core/smartcardlogon.c:423,10'
          Dst:             calloc
        - Src:             'libfreerdp/core/smartcardlogon.c:427,19'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'libfreerdp/core/smartcardlogon.c:431,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:434,7'
          Dst:             NCryptOpenKey
        - Src:             'libfreerdp/core/smartcardlogon.c:437,4'
          Dst:             winpr_NCryptSecurityStatusError
        - Src:             'libfreerdp/core/smartcardlogon.c:437,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:445,15'
          Dst:             _wcsdup
        - Src:             'libfreerdp/core/smartcardlogon.c:450,12'
          Dst:             NCryptGetProperty
        - Src:             'libfreerdp/core/smartcardlogon.c:454,4'
          Dst:             winpr_NCryptSecurityStatusError
        - Src:             'libfreerdp/core/smartcardlogon.c:454,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:462,12'
          Dst:             NCryptGetProperty
        - Src:             'libfreerdp/core/smartcardlogon.c:465,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:469,18'
          Dst:             calloc
        - Src:             'libfreerdp/core/smartcardlogon.c:472,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:476,12'
          Dst:             NCryptGetProperty
        - Src:             'libfreerdp/core/smartcardlogon.c:480,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:487,12'
          Dst:             NCryptGetProperty
        - Src:             'libfreerdp/core/smartcardlogon.c:490,26'
          Dst:             calloc
        - Src:             'libfreerdp/core/smartcardlogon.c:493,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:497,13'
          Dst:             NCryptGetProperty
        - Src:             'libfreerdp/core/smartcardlogon.c:503,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:510,7'
          Dst:             NCryptGetProperty
        - Src:             'libfreerdp/core/smartcardlogon.c:514,4'
          Dst:             winpr_NCryptSecurityStatusError
        - Src:             'libfreerdp/core/smartcardlogon.c:514,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:519,15'
          Dst:             calloc
        - Src:             'libfreerdp/core/smartcardlogon.c:522,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:527,12'
          Dst:             NCryptGetProperty
        - Src:             'libfreerdp/core/smartcardlogon.c:531,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:535,8'
          Dst:             set_info_certificate
        - Src:             'libfreerdp/core/smartcardlogon.c:539,8'
          Dst:             build_pkinit_args
        - Src:             'libfreerdp/core/smartcardlogon.c:541,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:549,3'
          Dst:             NCryptFreeBuffer
        - Src:             'libfreerdp/core/smartcardlogon.c:551,4'
          Dst:             NCryptFreeObject
        - Src:             'libfreerdp/core/smartcardlogon.c:554,4'
          Dst:             smartcardCertInfo_Free
        - Src:             'libfreerdp/core/smartcardlogon.c:557,9'
          Dst:             add_cert_to_list
        - Src:             'libfreerdp/core/smartcardlogon.c:568,9'
          Dst:             ConvertWCharToUtf8
        - Src:             'libfreerdp/core/smartcardlogon.c:570,9'
          Dst:             ConvertWCharToUtf8
        - Src:             'libfreerdp/core/smartcardlogon.c:571,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:575,2'
          Dst:             NCryptFreeBuffer
    - functionName:    create_temporary_file
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 727
      functionLinenumberEnd: 739
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - GetKnownSubPath
        - winpr_BinToHexString
        - winpr_RAND
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:731,6'
          Dst:             winpr_RAND
        - Src:             'libfreerdp/core/smartcardlogon.c:734,14'
          Dst:             winpr_BinToHexString
        - Src:             'libfreerdp/core/smartcardlogon.c:736,10'
          Dst:             GetKnownSubPath
    - functionName:    smartcardCertInfo_New
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 812
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          211
      EdgeCount:       48
      CyclomaticComplexity: 12
      functionsReached:
        - ConvertUtf8NToWCharAlloc
        - ConvertUtf8ToWCharAlloc
        - WLog_Print_dbg_tag
        - calloc
        - create_temporary_file
        - crypto_write_pem
        - freerdp_certificate_new_from_pem
        - freerdp_getApplicationDetailsString
        - smartcardCertInfo_Free
        - strlen
        - treat_sc_cert
        - winpr_asprintf
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:745,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/smartcardlogon.c:746,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/smartcardlogon.c:748,28'
          Dst:             calloc
        - Src:             'libfreerdp/core/smartcardlogon.c:753,45'
          Dst:             calloc
        - Src:             'libfreerdp/core/smartcardlogon.c:757,23'
          Dst:             freerdp_certificate_new_from_pem
        - Src:             'libfreerdp/core/smartcardlogon.c:760,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:764,8'
          Dst:             treat_sc_cert
        - Src:             'libfreerdp/core/smartcardlogon.c:766,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:773,52'
          Dst:             freerdp_getApplicationDetailsString
        - Src:             'libfreerdp/core/smartcardlogon.c:773,10'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/core/smartcardlogon.c:775,20'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'libfreerdp/core/smartcardlogon.c:781,25'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/core/smartcardlogon.c:790,19'
          Dst:             create_temporary_file
        - Src:             'libfreerdp/core/smartcardlogon.c:791,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:792,52'
          Dst:             strlen
        - Src:             'libfreerdp/core/smartcardlogon.c:792,8'
          Dst:             crypto_write_pem
        - Src:             'libfreerdp/core/smartcardlogon.c:795,20'
          Dst:             create_temporary_file
        - Src:             'libfreerdp/core/smartcardlogon.c:796,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:797,50'
          Dst:             strlen
        - Src:             'libfreerdp/core/smartcardlogon.c:797,8'
          Dst:             crypto_write_pem
        - Src:             'libfreerdp/core/smartcardlogon.c:801,20'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/core/smartcardlogon.c:810,2'
          Dst:             smartcardCertInfo_Free
    - functionName:    set_settings_from_smartcard
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 903
      functionLinenumberEnd: 911
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          65
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_settings_get_string
        - freerdp_settings_set_string
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:904,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/smartcardlogon.c:906,7'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/smartcardlogon.c:907,8'
          Dst:             freerdp_settings_set_string
    - functionName:    smartcard_getCert
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 914
      functionLinenumberEnd: 977
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          264
      EdgeCount:       59
      CyclomaticComplexity: 12
      functionsReached:
        - WLog_Print_dbg_tag
        - set_settings_from_smartcard
        - smartcardCertInfo_Free
        - smartcardCertList_Free
        - smartcard_enumerateCerts
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:915,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/smartcardlogon.c:922,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/smartcardlogon.c:923,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/smartcardlogon.c:925,7'
          Dst:             smartcard_enumerateCerts
        - Src:             'libfreerdp/core/smartcardlogon.c:930,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:936,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:948,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:949,4'
          Dst:             smartcardCertList_Free
        - Src:             'libfreerdp/core/smartcardlogon.c:955,4'
          Dst:             smartcardCertInfo_Free
        - Src:             'libfreerdp/core/smartcardlogon.c:957,4'
          Dst:             smartcardCertInfo_Free
        - Src:             'libfreerdp/core/smartcardlogon.c:968,7'
          Dst:             set_settings_from_smartcard
        - Src:             'libfreerdp/core/smartcardlogon.c:969,7'
          Dst:             set_settings_from_smartcard
        - Src:             'libfreerdp/core/smartcardlogon.c:971,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:972,3'
          Dst:             smartcardCertInfo_Free
    - functionName:    smartcard_enumerateCerts
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 860
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          168
      EdgeCount:       43
      CyclomaticComplexity: 8
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - freerdp_settings_get_string
        - smartcard_hw_enumerateCerts
        - smartcard_sw_enumerateCerts
        - strlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:863,27'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/smartcardlogon.c:864,24'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/smartcardlogon.c:870,14'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/smartcardlogon.c:871,12'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/smartcardlogon.c:875,14'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/smartcardlogon.c:876,12'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/smartcardlogon.c:879,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/smartcardlogon.c:880,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/smartcardlogon.c:881,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/smartcardlogon.c:883,17'
          Dst:             strlen
        - Src:             'libfreerdp/core/smartcardlogon.c:886,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/smartcardlogon.c:887,10'
          Dst:             smartcard_sw_enumerateCerts
        - Src:             'libfreerdp/core/smartcardlogon.c:889,26'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/core/smartcardlogon.c:891,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:896,6'
          Dst:             smartcard_hw_enumerateCerts
    - functionName:    smartcardCertList_Free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - smartcardCertInfo_Free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:121,3'
          Dst:             smartcardCertInfo_Free
    - functionName:    smartcard_sw_enumerateCerts
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 816
      functionLinenumberEnd: 855
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          131
      EdgeCount:       38
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - freerdp_settings_get_string
        - smartcardCertInfo_New
        - smartcardCertList_Free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:820,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/smartcardlogon.c:821,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/smartcardlogon.c:822,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/smartcardlogon.c:824,27'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/smartcardlogon.c:825,24'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/smartcardlogon.c:828,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:833,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:837,35'
          Dst:             calloc
        - Src:             'libfreerdp/core/smartcardlogon.c:842,29'
          Dst:             smartcardCertInfo_New
        - Src:             'libfreerdp/core/smartcardlogon.c:854,3'
          Dst:             smartcardCertList_Free
    - functionName:    smartcard_hw_enumerateCerts
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/smartcardlogon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 723
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          311
      EdgeCount:       70
      CyclomaticComplexity: 17
      functionsReached:
        - ConvertUtf8NToWCharAlloc
        - ConvertWCharToUtf8
        - NCryptEnumStorageProviders
        - NCryptFreeBuffer
        - NCryptFreeObject
        - NCryptOpenStorageProvider
        - WLog_Print_dbg_tag
        - _wcscmp
        - freerdp_settings_get_string
        - list_provider_keys
        - smartcardCertList_Free
        - snprintf
        - winpr_NCryptOpenStorageProviderEx
        - winpr_asprintf
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/smartcardlogon.c:590,29'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/smartcardlogon.c:592,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/smartcardlogon.c:593,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/smartcardlogon.c:599,3'
          Dst:             winpr_asprintf
        - Src:             'libfreerdp/core/smartcardlogon.c:603,11'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'libfreerdp/core/smartcardlogon.c:618,12'
          Dst:             winpr_NCryptOpenStorageProviderEx
        - Src:             'libfreerdp/core/smartcardlogon.c:621,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:625,12'
          Dst:             list_provider_keys
        - Src:             'libfreerdp/core/smartcardlogon.c:627,3'
          Dst:             NCryptFreeObject
        - Src:             'libfreerdp/core/smartcardlogon.c:630,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:675,12'
          Dst:             NCryptEnumStorageProviders
        - Src:             'libfreerdp/core/smartcardlogon.c:678,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:687,8'
          Dst:             ConvertWCharToUtf8
        - Src:             'libfreerdp/core/smartcardlogon.c:689,11'
          Dst:             snprintf
        - Src:             'libfreerdp/core/smartcardlogon.c:690,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:694,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:695,15'
          Dst:             _wcscmp
        - Src:             'libfreerdp/core/smartcardlogon.c:697,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:701,13'
          Dst:             NCryptOpenStorageProvider
        - Src:             'libfreerdp/core/smartcardlogon.c:705,9'
          Dst:             list_provider_keys
        - Src:             'libfreerdp/core/smartcardlogon.c:707,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/smartcardlogon.c:709,4'
          Dst:             NCryptFreeObject
        - Src:             'libfreerdp/core/smartcardlogon.c:712,3'
          Dst:             NCryptFreeBuffer
        - Src:             'libfreerdp/core/smartcardlogon.c:721,3'
          Dst:             smartcardCertList_Free
    - functionName:    nego_disable_all_except
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1404
      functionLinenumberEnd: 1417
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          88
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_protocol_to_str
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1405,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1408,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1408,2'
          Dst:             nego_protocol_to_str
        - Src:             'libfreerdp/core/nego.c:1408,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    nego_protocol_to_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2081
      functionLinenumberEnd: 2105
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          143
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - snprintf
        - winpr_str_append
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:2087,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/nego.c:2089,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/nego.c:2091,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/nego.c:2093,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/nego.c:2095,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/nego.c:2097,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/nego.c:2100,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/nego.c:2102,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/nego.c:2104,8'
          Dst:             snprintf
    - functionName:    nego_rdp_neg_fail_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1383
      functionLinenumberEnd: 1401
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       16
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nego.c:1384,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    Stream_Get_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:413,10'
          Dst:             stream_read_u32_le
    - 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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:114,3'
          Dst:             winpr_int_assert
    - 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:    8
      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:    nego_rdp_neg_rsp_flags_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1323
      functionLinenumberEnd: 1347
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          108
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - snprintf
        - winpr_str_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1329,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/nego.c:1331,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/nego.c:1333,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/nego.c:1335,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/nego.c:1337,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/nego.c:1339,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/nego.c:1343,9'
          Dst:             snprintf
        - Src:             'libfreerdp/core/nego.c:1344,3'
          Dst:             winpr_str_append
    - 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:    1
      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:    nego_process_correlation_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1174
      functionLinenumberEnd: 1238
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         78
      ICount:          362
      EdgeCount:       93
      CyclomaticComplexity: 17
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Read
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1180,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/nego.c:1182,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1182,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1187,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/nego.c:1190,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1190,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1194,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/nego.c:1197,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1197,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1200,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/nego.c:1203,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1203,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1207,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/nego.c:1210,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1210,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1219,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1219,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1226,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/nego.c:1228,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1228,2'
          Dst:             WLog_PrintTextMessage
    - 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:    7
      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:    5
      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:    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_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_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:    nego_recv_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 747
      functionLinenumberEnd: 772
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          99
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Free
        - Stream_New
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_recv
        - transport_read_pdu
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:751,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:752,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/nego.c:756,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:756,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:760,11'
          Dst:             transport_read_pdu
        - Src:             'libfreerdp/core/nego.c:764,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/nego.c:768,11'
          Dst:             nego_recv
        - Src:             'libfreerdp/core/nego.c:769,2'
          Dst:             Stream_Free
    - functionName:    nego_recv
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 870
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          343
      EdgeCount:       95
      CyclomaticComplexity: 20
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_process_negotiation_failure
        - nego_process_negotiation_response
        - nego_protocol_to_str
        - nego_set_state
        - stream_read_u8
        - tpdu_read_connection_confirm
        - tpkt_ensure_stream_consumed_
        - tpkt_read_header
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nego.c:804,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:792,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:793,7'
          Dst:             tpkt_read_header
        - Src:             'libfreerdp/core/nego.c:796,7'
          Dst:             tpdu_read_connection_confirm
        - Src:             'libfreerdp/core/nego.c:802,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/nego.c:807,10'
          Dst:             nego_process_negotiation_response
        - Src:             'libfreerdp/core/nego.c:811,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:811,6'
          Dst:             nego_protocol_to_str
        - Src:             'libfreerdp/core/nego.c:811,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:823,7'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:828,7'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:834,7'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:839,6'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:845,10'
          Dst:             nego_process_negotiation_failure
        - Src:             'libfreerdp/core/nego.c:854,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:854,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:857,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:859,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:863,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:863,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:864,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:867,7'
          Dst:             tpkt_ensure_stream_consumed_
    - functionName:    nego_process_negotiation_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1351
      functionLinenumberEnd: 1380
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          158
      EdgeCount:       47
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_rdp_neg_rsp_flags_str
        - nego_set_selected_protocol
        - nego_set_state
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1354,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1355,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1357,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/nego.c:1359,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:1363,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/nego.c:1364,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1364,2'
          Dst:             nego_rdp_neg_rsp_flags_str
        - Src:             'libfreerdp/core/nego.c:1364,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1367,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/nego.c:1370,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1370,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1371,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:1375,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/nego.c:1377,7'
          Dst:             nego_set_selected_protocol
        - Src:             'libfreerdp/core/nego.c:1379,9'
          Dst:             nego_set_state
    - functionName:    nego_set_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2047
      functionLinenumberEnd: 2050
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    62
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:2048,2'
          Dst:             winpr_int_assert
    - functionName:    nego_process_negotiation_failure
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1428
      functionLinenumberEnd: 1486
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         61
      ICount:          246
      EdgeCount:       67
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT32
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_disable_all_except
        - nego_rdp_neg_fail_str
        - nego_set_state
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nego.c:1454,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1432,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1433,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1435,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1435,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1436,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/nego.c:1439,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/nego.c:1442,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1442,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1445,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/nego.c:1448,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1448,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1451,31'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/nego.c:1452,27'
          Dst:             nego_rdp_neg_fail_str
        - Src:             'libfreerdp/core/nego.c:1457,4'
          Dst:             nego_disable_all_except
        - Src:             'libfreerdp/core/nego.c:1461,4'
          Dst:             nego_disable_all_except
        - Src:             'libfreerdp/core/nego.c:1475,4'
          Dst:             nego_disable_all_except
        - Src:             'libfreerdp/core/nego.c:1483,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1483,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1484,2'
          Dst:             nego_set_state
    - functionName:    nego_set_selected_protocol
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2015
      functionLinenumberEnd: 2018
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:2016,2'
          Dst:             winpr_int_assert
    - functionName:    nego_transport_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          69
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - nego_security_connect
        - nego_tcp_connect
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:411,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:412,7'
          Dst:             nego_tcp_connect
        - Src:             'libfreerdp/core/nego.c:416,10'
          Dst:             nego_security_connect
    - functionName:    nego_tcp_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          218
      EdgeCount:       51
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_get_uint32
        - transport_connect
        - transport_connect_childsession
        - transport_get_context
        - transport_set_gateway_enabled
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:354,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:359,13'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/nego.c:360,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:363,7'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/nego.c:370,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:370,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:373,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:373,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:375,5'
          Dst:             transport_set_gateway_enabled
        - Src:             'libfreerdp/core/nego.c:376,26'
          Dst:             transport_connect
        - Src:             'libfreerdp/core/nego.c:382,5'
          Dst:             transport_set_gateway_enabled
        - Src:             'libfreerdp/core/nego.c:383,26'
          Dst:             transport_connect
        - Src:             'libfreerdp/core/nego.c:389,25'
          Dst:             transport_connect_childsession
        - Src:             'libfreerdp/core/nego.c:394,8'
          Dst:             transport_connect
    - functionName:    nego_security_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - nego_try_connect
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:337,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:344,8'
          Dst:             nego_try_connect
    - functionName:    nego_try_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         67
      ICount:          270
      EdgeCount:       73
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - transport_connect_aad
        - transport_connect_nla
        - transport_connect_rdp
        - transport_connect_rdstls
        - transport_connect_tls
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nego.c:300,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:298,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:303,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:303,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:304,30'
          Dst:             transport_connect_aad
        - Src:             'libfreerdp/core/nego.c:307,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:307,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:308,30'
          Dst:             transport_connect_rdstls
        - Src:             'libfreerdp/core/nego.c:311,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:311,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:312,30'
          Dst:             transport_connect_nla
        - Src:             'libfreerdp/core/nego.c:315,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:315,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:316,30'
          Dst:             transport_connect_nla
        - Src:             'libfreerdp/core/nego.c:319,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:319,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:320,30'
          Dst:             transport_connect_tls
        - Src:             'libfreerdp/core/nego.c:323,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:323,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:324,30'
          Dst:             transport_connect_rdp
        - Src:             'libfreerdp/core/nego.c:327,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:327,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    nego_attempt_rdp
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 714
      functionLinenumberEnd: 736
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          88
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_recv_response
        - nego_send_negotiation_request
        - nego_set_state
        - nego_transport_connect
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:715,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:717,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:717,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:719,7'
          Dst:             nego_transport_connect
        - Src:             'libfreerdp/core/nego.c:721,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:725,7'
          Dst:             nego_send_negotiation_request
        - Src:             'libfreerdp/core/nego.c:727,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:731,7'
          Dst:             nego_recv_response
        - Src:             'libfreerdp/core/nego.c:733,3'
          Dst:             nego_set_state
    - functionName:    nego_send_negotiation_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1075
      functionLinenumberEnd: 1171
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         168
      ICount:          582
      EdgeCount:       188
      CyclomaticComplexity: 22
      functionsReached:
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - Stream_SealLength
        - Stream_Seek
        - Stream_SetPosition
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_protocol_to_str
        - strlen
        - tpdu_write_connection_request
        - tpkt_write_header
        - transport_write
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1083,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/nego.c:1085,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1088,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1088,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1093,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/nego.c:1094,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/nego.c:1098,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/nego.c:1106,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1106,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1112,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1112,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1113,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/nego.c:1114,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/nego.c:1120,19'
          Dst:             strlen
        - Src:             'libfreerdp/core/nego.c:1125,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/nego.c:1126,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/nego.c:1127,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/nego.c:1128,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/nego.c:1134,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1134,3'
          Dst:             nego_protocol_to_str
        - Src:             'libfreerdp/core/nego.c:1134,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1147,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/nego.c:1148,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1148,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1148,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/nego.c:1149,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/nego.c:1150,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1150,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1150,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/nego.c:1157,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/nego.c:1158,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/nego.c:1160,7'
          Dst:             tpkt_write_header
        - Src:             'libfreerdp/core/nego.c:1162,7'
          Dst:             tpdu_write_connection_request
        - Src:             'libfreerdp/core/nego.c:1164,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/nego.c:1166,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/nego.c:1167,8'
          Dst:             transport_write
        - Src:             'libfreerdp/core/nego.c:1169,2'
          Dst:             Stream_Free
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,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:    4
      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_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:    10
      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:    5
      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_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:    nego_attempt_tls
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 711
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          115
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_get_state
        - nego_recv_response
        - nego_send_negotiation_request
        - nego_set_state
        - nego_transport_connect
        - nego_transport_disconnect
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:680,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:682,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:682,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:684,7'
          Dst:             nego_transport_connect
        - Src:             'libfreerdp/core/nego.c:686,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:690,7'
          Dst:             nego_send_negotiation_request
        - Src:             'libfreerdp/core/nego.c:692,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:696,7'
          Dst:             nego_recv_response
        - Src:             'libfreerdp/core/nego.c:698,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:702,6'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:704,3'
          Dst:             nego_transport_disconnect
        - Src:             'libfreerdp/core/nego.c:707,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:709,4'
          Dst:             nego_set_state
    - functionName:    nego_get_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2039
      functionLinenumberEnd: 2044
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nego_transport_disconnect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - transport_disconnect
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:431,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:433,3'
          Dst:             transport_disconnect
    - functionName:    nego_attempt_nla
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 640
      functionLinenumberEnd: 676
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         38
      ICount:          155
      EdgeCount:       46
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_get_state
        - nego_recv_response
        - nego_send_negotiation_request
        - nego_set_state
        - nego_state_string
        - nego_transport_connect
        - nego_transport_disconnect
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:641,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:643,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:643,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:645,7'
          Dst:             nego_transport_connect
        - Src:             'libfreerdp/core/nego.c:647,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:651,7'
          Dst:             nego_send_negotiation_request
        - Src:             'libfreerdp/core/nego.c:653,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:657,7'
          Dst:             nego_recv_response
        - Src:             'libfreerdp/core/nego.c:659,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:663,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:663,2'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:663,2'
          Dst:             nego_state_string
        - Src:             'libfreerdp/core/nego.c:663,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:665,6'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:667,3'
          Dst:             nego_transport_disconnect
        - Src:             'libfreerdp/core/nego.c:670,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:672,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:674,4'
          Dst:             nego_set_state
    - functionName:    nego_state_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nego_attempt_ext
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 599
      functionLinenumberEnd: 637
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          169
      EdgeCount:       50
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_get_state
        - nego_recv_response
        - nego_send_negotiation_request
        - nego_set_state
        - nego_state_string
        - nego_transport_connect
        - nego_transport_disconnect
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:600,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:602,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:602,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:604,7'
          Dst:             nego_transport_connect
        - Src:             'libfreerdp/core/nego.c:606,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:610,7'
          Dst:             nego_send_negotiation_request
        - Src:             'libfreerdp/core/nego.c:612,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:616,7'
          Dst:             nego_recv_response
        - Src:             'libfreerdp/core/nego.c:618,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:622,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:622,2'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:622,2'
          Dst:             nego_state_string
        - Src:             'libfreerdp/core/nego.c:622,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:624,6'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:626,3'
          Dst:             nego_transport_disconnect
        - Src:             'libfreerdp/core/nego.c:629,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:631,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:633,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:635,4'
          Dst:             nego_set_state
    - functionName:    nego_attempt_rdstls
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          183
      EdgeCount:       54
      CyclomaticComplexity: 12
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_get_state
        - nego_recv_response
        - nego_send_negotiation_request
        - nego_set_state
        - nego_state_string
        - nego_transport_connect
        - nego_transport_disconnect
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:514,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:516,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:516,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:518,7'
          Dst:             nego_transport_connect
        - Src:             'libfreerdp/core/nego.c:520,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:524,7'
          Dst:             nego_send_negotiation_request
        - Src:             'libfreerdp/core/nego.c:526,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:530,7'
          Dst:             nego_recv_response
        - Src:             'libfreerdp/core/nego.c:532,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:536,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:536,2'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:536,2'
          Dst:             nego_state_string
        - Src:             'libfreerdp/core/nego.c:536,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:538,6'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:540,3'
          Dst:             nego_transport_disconnect
        - Src:             'libfreerdp/core/nego.c:543,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:545,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:547,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:549,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:551,4'
          Dst:             nego_set_state
    - functionName:    nego_attempt_rdsaad
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 556
      functionLinenumberEnd: 596
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          183
      EdgeCount:       54
      CyclomaticComplexity: 12
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_get_state
        - nego_recv_response
        - nego_send_negotiation_request
        - nego_set_state
        - nego_state_string
        - nego_transport_connect
        - nego_transport_disconnect
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:557,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:559,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:559,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:561,7'
          Dst:             nego_transport_connect
        - Src:             'libfreerdp/core/nego.c:563,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:567,7'
          Dst:             nego_send_negotiation_request
        - Src:             'libfreerdp/core/nego.c:569,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:573,7'
          Dst:             nego_recv_response
        - Src:             'libfreerdp/core/nego.c:575,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:579,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:579,2'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:579,2'
          Dst:             nego_state_string
        - Src:             'libfreerdp/core/nego.c:579,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:581,6'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:583,3'
          Dst:             nego_transport_disconnect
        - Src:             'libfreerdp/core/nego.c:586,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:588,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:590,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:592,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:594,4'
          Dst:             nego_set_state
    - 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:    2
      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:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,3'
          Dst:             winpr_int_assert
    - functionName:    nego_get_routing_token
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2072
      functionLinenumberEnd: 2078
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nego_free_nla
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2064
      functionLinenumberEnd: 2069
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - transport_set_nla
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:2068,2'
          Dst:             transport_set_nla
    - functionName:    nego_get_identity
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2054
      functionLinenumberEnd: 2061
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - nla_get_identity
        - transport_get_nla
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:2059,8'
          Dst:             transport_get_nla
        - Src:             'libfreerdp/core/nego.c:2060,9'
          Dst:             nla_get_identity
    - functionName:    nego_set_requested_protocols
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2030
      functionLinenumberEnd: 2036
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nego_get_requested_protocols
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2022
      functionLinenumberEnd: 2027
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nego_get_selected_protocol
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2007
      functionLinenumberEnd: 2012
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nego_set_preconnection_blob
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2002
      functionLinenumberEnd: 2004
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nego_set_preconnection_id
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1991
      functionLinenumberEnd: 1993
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nego_set_send_preconnection_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1980
      functionLinenumberEnd: 1982
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nego_set_cookie_max_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1969
      functionLinenumberEnd: 1971
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nego_set_cookie
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1947
      functionLinenumberEnd: 1960
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _strdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1957,17'
          Dst:             _strdup
    - functionName:    nego_set_routing_token
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1923
      functionLinenumberEnd: 1936
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nego_enable_aad
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1899
      functionLinenumberEnd: 1911
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          95
      EdgeCount:       29
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - aad_is_supported
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1900,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1901,6'
          Dst:             aad_is_supported
        - Src:             'libfreerdp/core/nego.c:1903,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1903,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1909,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1909,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    nego_enable_ext
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1885
      functionLinenumberEnd: 1889
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1886,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1886,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    nego_enable_rdstls
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1871
      functionLinenumberEnd: 1875
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1872,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1872,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    nego_enable_nla
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1858
      functionLinenumberEnd: 1861
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1859,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1859,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    nego_enable_tls
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1845
      functionLinenumberEnd: 1848
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1846,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1846,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    nego_enable_rdp
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1833
      functionLinenumberEnd: 1836
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1834,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1834,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    nego_set_gateway_bypass_local
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1822
      functionLinenumberEnd: 1824
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nego_set_gateway_enabled
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1817
      functionLinenumberEnd: 1819
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nego_set_childsession_enabled
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1811
      functionLinenumberEnd: 1814
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1812,2'
          Dst:             winpr_int_assert
    - functionName:    nego_get_remoteCredentialGuard
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1804
      functionLinenumberEnd: 1807
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1805,2'
          Dst:             winpr_int_assert
    - functionName:    nego_set_RCG_supported
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1797
      functionLinenumberEnd: 1801
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1798,2'
          Dst:             winpr_int_assert
    - functionName:    nego_set_RCG_required
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1788
      functionLinenumberEnd: 1794
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          62
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1789,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1791,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1791,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    nego_set_restricted_admin_mode_supported
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1781
      functionLinenumberEnd: 1785
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1782,2'
          Dst:             winpr_int_assert
    - functionName:    nego_set_restricted_admin_mode_required
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1774
      functionLinenumberEnd: 1778
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1775,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1775,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    nego_set_negotiation_enabled
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1760
      functionLinenumberEnd: 1764
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1761,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1761,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    nego_set_target
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1743
      functionLinenumberEnd: 1749
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          52
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1744,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1745,2'
          Dst:             winpr_int_assert
    - functionName:    nego_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1724
      functionLinenumberEnd: 1731
      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:    nego_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1705
      functionLinenumberEnd: 1716
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Get
        - calloc
        - nego_init
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1706,28'
          Dst:             calloc
        - Src:             'libfreerdp/core/nego.c:1711,14'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/nego.c:1712,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1714,2'
          Dst:             nego_init
    - functionName:    nego_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1687
      functionLinenumberEnd: 1694
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - nego_set_state
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1688,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1689,2'
          Dst:             nego_set_state
    - functionName:    nego_send_negotiation_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1494
      functionLinenumberEnd: 1679
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         235
      ICount:          847
      EdgeCount:       278
      CyclomaticComplexity: 45
      functionsReached:
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - Stream_SafeSeekEx
        - Stream_SealLength
        - Stream_SetPosition
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_get_bool
        - freerdp_settings_get_pointer
        - freerdp_settings_get_uint32
        - freerdp_settings_set_bool
        - freerdp_settings_set_uint32
        - tpdu_write_connection_confirm
        - tpkt_write_header
        - transport_get_context
        - transport_write
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nego.c:1579,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1500,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1501,12'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/nego.c:1502,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1505,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1507,15'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/nego.c:1511,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1511,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1516,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/nego.c:1517,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/nego.c:1524,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/nego.c:1525,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1525,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1525,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/nego.c:1526,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/nego.c:1527,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1527,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1527,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/nego.c:1534,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/nego.c:1544,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/nego.c:1545,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1545,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1545,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/nego.c:1546,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/nego.c:1547,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1547,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1547,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/nego.c:1551,20'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/nego.c:1552,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/nego.c:1554,7'
          Dst:             tpkt_write_header
        - Src:             'libfreerdp/core/nego.c:1557,7'
          Dst:             tpdu_write_connection_confirm
        - Src:             'libfreerdp/core/nego.c:1560,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/nego.c:1562,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/nego.c:1564,12'
          Dst:             transport_write
        - Src:             'libfreerdp/core/nego.c:1567,2'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/nego.c:1572,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/nego.c:1575,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/nego.c:1582,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1584,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1586,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1588,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1591,9'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/nego.c:1598,11'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/nego.c:1603,9'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/nego.c:1611,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1611,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1613,11'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1615,11'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/nego.c:1619,15'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/core/nego.c:1621,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1621,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1626,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1628,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1630,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1632,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1634,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1637,10'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/nego.c:1642,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1644,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1646,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1648,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1650,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1653,10'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/nego.c:1658,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1660,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1662,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1664,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1666,10'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:1669,10'
          Dst:             freerdp_settings_set_uint32
    - functionName:    nego_process_negotiation_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1241
      functionLinenumberEnd: 1320
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         104
      ICount:          387
      EdgeCount:       122
      CyclomaticComplexity: 20
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_process_correlation_info
        - nego_protocol_to_str
        - nego_set_state
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1245,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1246,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1248,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/nego.c:1250,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/nego.c:1254,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1254,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1261,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1261,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1265,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1265,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1275,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1275,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1286,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1286,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1291,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1291,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1299,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/nego.c:1302,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1302,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1305,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/nego.c:1309,8'
          Dst:             nego_process_correlation_info
        - Src:             'libfreerdp/core/nego.c:1315,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1315,3'
          Dst:             nego_protocol_to_str
        - Src:             'libfreerdp/core/nego.c:1315,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1318,2'
          Dst:             nego_set_state
    - functionName:    nego_read_request_token_or_cookie
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 878
      functionLinenumberEnd: 971
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         76
      ICount:          312
      EdgeCount:       93
      CyclomaticComplexity: 19
      functionsReached:
        - Stream_ConstPointer
        - Stream_GetPosition
        - Stream_GetRemainingLength
        - Stream_Rewind
        - Stream_Seek
        - Stream_SetPosition
        - Stream_Write_UINT16_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - memcmp
        - nego_set_cookie
        - nego_set_routing_token
        - stream_read_u16_le
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:894,18'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/nego.c:896,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:898,20'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/nego.c:899,21'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/nego.c:905,31'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/nego.c:905,24'
          Dst:             memcmp
        - Src:             'libfreerdp/core/nego.c:907,14'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/nego.c:907,7'
          Dst:             memcmp
        - Src:             'libfreerdp/core/nego.c:909,15'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/nego.c:909,8'
          Dst:             memcmp
        - Src:             'libfreerdp/core/nego.c:911,16'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/nego.c:911,9'
          Dst:             memcmp
        - Src:             'libfreerdp/core/nego.c:926,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/nego.c:929,9'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/nego.c:931,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/nego.c:936,3'
          Dst:             Stream_Rewind
        - Src:             'libfreerdp/core/nego.c:941,3'
          Dst:             Stream_Rewind
        - Src:             'libfreerdp/core/nego.c:942,22'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/nego.c:943,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/nego.c:948,7'
          Dst:             strnlen
        - Src:             'libfreerdp/core/nego.c:951,14'
          Dst:             nego_set_routing_token
        - Src:             'libfreerdp/core/nego.c:953,14'
          Dst:             nego_set_cookie
        - Src:             'libfreerdp/core/nego.c:959,8'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/nego.c:961,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:961,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:966,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:966,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    nego_read_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 983
      functionLinenumberEnd: 1026
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         54
      ICount:          211
      EdgeCount:       64
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_process_negotiation_request
        - nego_read_request_token_or_cookie
        - stream_read_u8
        - tpdu_read_connection_request
        - tpkt_ensure_stream_consumed_
        - tpkt_read_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:988,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:989,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:991,7'
          Dst:             tpkt_read_header
        - Src:             'libfreerdp/core/nego.c:994,7'
          Dst:             tpdu_read_connection_request
        - Src:             'libfreerdp/core/nego.c:997,12'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/nego.c:999,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:999,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1003,7'
          Dst:             nego_read_request_token_or_cookie
        - Src:             'libfreerdp/core/nego.c:1005,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1005,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1009,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/nego.c:1012,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/nego.c:1016,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1016,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:1021,8'
          Dst:             nego_process_negotiation_request
        - Src:             'libfreerdp/core/nego.c:1025,9'
          Dst:             tpkt_ensure_stream_consumed_
    - functionName:    nego_disconnect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - nego_set_state
        - nego_transport_disconnect
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:291,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:292,2'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:293,9'
          Dst:             nego_transport_disconnect
    - functionName:    nego_send
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1035
      functionLinenumberEnd: 1062
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          93
      EdgeCount:       24
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_attempt_ext
        - nego_attempt_nla
        - nego_attempt_rdp
        - nego_attempt_rdsaad
        - nego_attempt_rdstls
        - nego_attempt_tls
        - nego_get_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nego.c:1038,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:1036,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:1038,10'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:1041,4'
          Dst:             nego_attempt_rdsaad
        - Src:             'libfreerdp/core/nego.c:1044,4'
          Dst:             nego_attempt_rdstls
        - Src:             'libfreerdp/core/nego.c:1047,4'
          Dst:             nego_attempt_ext
        - Src:             'libfreerdp/core/nego.c:1050,4'
          Dst:             nego_attempt_nla
        - Src:             'libfreerdp/core/nego.c:1053,4'
          Dst:             nego_attempt_tls
        - Src:             'libfreerdp/core/nego.c:1056,4'
          Dst:             nego_attempt_rdp
        - Src:             'libfreerdp/core/nego.c:1059,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:1059,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    nego_send_preconnection_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         100
      ICount:          321
      EdgeCount:       108
      CyclomaticComplexity: 10
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - nego_tcp_connect
        - transport_write
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:455,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:457,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:457,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:459,7'
          Dst:             nego_tcp_connect
        - Src:             'libfreerdp/core/nego.c:468,12'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/core/nego.c:479,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/nego.c:484,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:484,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:488,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:488,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:488,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/nego.c:489,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/nego.c:490,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/nego.c:491,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:491,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:491,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/nego.c:492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:492,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/nego.c:496,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/nego.c:500,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/nego.c:502,6'
          Dst:             transport_write
        - Src:             'libfreerdp/core/nego.c:504,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/nego.c:508,2'
          Dst:             Stream_Free
    - functionName:    nego_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         152
      ICount:          668
      EdgeCount:       182
      CyclomaticComplexity: 32
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_last_error
        - freerdp_settings_get_uint32
        - freerdp_settings_set_bool
        - freerdp_settings_set_uint32
        - nego_get_state
        - nego_protocol_to_str
        - nego_security_connect
        - nego_send
        - nego_send_preconnection_pdu
        - nego_set_selected_protocol
        - nego_set_state
        - nego_state_string
        - nego_tcp_connect
        - nego_update_settings_from_state
        - transport_get_context
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/nego.c:173,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:122,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:123,12'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/nego.c:124,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:126,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:128,6'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:132,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:136,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:140,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:144,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:148,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:152,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:156,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:156,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:157,4'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:163,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:163,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:173,12'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:201,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:201,6'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:201,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:205,9'
          Dst:             nego_set_selected_protocol
        - Src:             'libfreerdp/core/nego.c:209,8'
          Dst:             nego_tcp_connect
        - Src:             'libfreerdp/core/nego.c:211,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:211,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:217,9'
          Dst:             nego_send_preconnection_pdu
        - Src:             'libfreerdp/core/nego.c:219,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:219,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:220,5'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:228,3'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:234,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:234,4'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:234,4'
          Dst:             nego_state_string
        - Src:             'libfreerdp/core/nego.c:234,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:235,4'
          Dst:             nego_send
        - Src:             'libfreerdp/core/nego.c:237,8'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:239,32'
          Dst:             transport_get_context
        - Src:             'libfreerdp/core/nego.c:239,9'
          Dst:             freerdp_get_last_error
        - Src:             'libfreerdp/core/nego.c:241,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:241,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:243,5'
          Dst:             nego_set_state
        - Src:             'libfreerdp/core/nego.c:246,12'
          Dst:             nego_get_state
        - Src:             'libfreerdp/core/nego.c:251,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:251,3'
          Dst:             nego_protocol_to_str
        - Src:             'libfreerdp/core/nego.c:251,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/nego.c:256,7'
          Dst:             nego_update_settings_from_state
        - Src:             'libfreerdp/core/nego.c:261,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/nego.c:264,7'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/nego.c:270,9'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/nego.c:278,7'
          Dst:             nego_security_connect
        - Src:             'libfreerdp/core/nego.c:281,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/nego.c:281,3'
          Dst:             nego_protocol_to_str
        - Src:             'libfreerdp/core/nego.c:281,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    nego_update_settings_from_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/nego.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          64
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_settings_set_uint32
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/nego.c:100,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/nego.c:103,9'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/nego.c:105,9'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/nego.c:107,9'
          Dst:             freerdp_settings_set_uint32
    - 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:    rdp_recv_logon_error_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1304
      functionLinenumberEnd: 1334
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          159
      EdgeCount:       48
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:1309,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1310,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1311,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1312,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1315,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1317,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:1320,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:1321,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:1322,2'
          Dst:             WLog_Print_dbg_tag
    - 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:    23
      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:    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:    41
      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_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_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:    13
      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:    rdp_read_server_auto_reconnect_cookie
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          191
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - WLog_Print_dbg_tag
        - crypto_base64_encode
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:241,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:244,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:248,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:252,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:253,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:254,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/info.c:256,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:271,12'
          Dst:             crypto_base64_encode
        - Src:             'libfreerdp/core/info.c:272,3'
          Dst:             WLog_Print_dbg_tag
    - 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:    3
      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:    rdp_info_read_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1121
      functionLinenumberEnd: 1159
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          156
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - ConvertWCharNToUtf8Alloc
        - Stream_ConstPointer
        - Stream_SafeSeekEx
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:1122,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1128,11'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/info.c:1134,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:1138,21'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/info.c:1139,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/info.c:1144,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:1149,13'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'libfreerdp/core/info.c:1152,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,3'
          Dst:             winpr_int_assert
    - functionName:    rdp_write_client_auto_reconnect_cookie
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         72
      ICount:          285
      EdgeCount:       73
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:311,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:314,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:317,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:320,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:322,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:330,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/info.c:332,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:332,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:332,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:333,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:333,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:333,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:334,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:334,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:334,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:335,2'
          Dst:             Stream_Write
    - 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:    24
      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
      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:    9
      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:    rdp_compute_client_auto_reconnect_cookie
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          126
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_HMAC
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:204,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:206,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:222,7'
          Dst:             winpr_HMAC
    - functionName:    rdp_write_extended_info_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 519
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         218
      ICount:          758
      EdgeCount:       241
      CyclomaticComplexity: 25
      functionsReached:
        - ConvertUtf8NToWChar
        - ConvertUtf8ToWCharAlloc
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UTF16_String_From_UTF8
        - WLog_Print_dbg_tag
        - freerdp_performance_flags_make
        - freerdp_settings_get_bool
        - freerdp_settings_get_string
        - rdp_compute_client_auto_reconnect_cookie
        - rdp_get_client_address_max_size
        - rdp_write_client_auto_reconnect_cookie
        - rdp_write_client_time_zone
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:522,36'
          Dst:             rdp_get_client_address_max_size
        - Src:             'libfreerdp/core/info.c:528,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:531,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:539,25'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/core/info.c:543,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:552,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:562,14'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/core/info.c:565,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:574,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:585,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:591,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/info.c:594,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:594,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:594,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:595,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:595,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:595,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:597,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/info.c:599,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:599,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:599,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:601,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/info.c:603,7'
          Dst:             rdp_write_client_time_zone
        - Src:             'libfreerdp/core/info.c:606,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/info.c:610,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:610,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:610,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:611,2'
          Dst:             freerdp_performance_flags_make
        - Src:             'libfreerdp/core/info.c:612,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:612,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:612,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:613,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:613,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:613,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:617,8'
          Dst:             rdp_compute_client_auto_reconnect_cookie
        - Src:             'libfreerdp/core/info.c:619,8'
          Dst:             rdp_write_client_auto_reconnect_cookie
        - Src:             'libfreerdp/core/info.c:623,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/info.c:625,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/info.c:628,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:629,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:633,20'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/info.c:636,14'
          Dst:             strnlen
        - Src:             'libfreerdp/core/info.c:637,25'
          Dst:             ConvertUtf8NToWChar
        - Src:             'libfreerdp/core/info.c:640,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:640,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:642,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:642,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:642,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:643,7'
          Dst:             Stream_Write_UTF16_String_From_UTF8
        - Src:             'libfreerdp/core/info.c:645,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:645,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:645,3'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    rdp_get_client_address_max_size
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          64
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:352,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:354,12'
          Dst:             freerdp_settings_get_uint32
    - 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:    20
      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:    rdp_info_package_flags_description
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          77
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - winpr_str_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:180,11'
          Dst:             calloc
        - Src:             'libfreerdp/core/info.c:190,4'
          Dst:             winpr_str_append
    - functionName:    rdp_read_client_auto_reconnect_cookie
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:290,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:293,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:294,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:295,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:296,2'
          Dst:             Stream_Read
    - functionName:    rdp_read_info_null_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          155
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_Pointer
        - Stream_Seek
        - WLog_Print_dbg_tag
        - freerdp_settings_set_string
        - freerdp_settings_set_string_from_utf16N
        - freerdp_settings_set_string_len
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:138,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/info.c:141,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:148,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:154,26'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/info.c:155,9'
          Dst:             freerdp_settings_set_string_from_utf16N
        - Src:             'libfreerdp/core/info.c:158,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:165,25'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/info.c:166,9'
          Dst:             freerdp_settings_set_string_len
        - Src:             'libfreerdp/core/info.c:170,2'
          Dst:             Stream_Seek
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,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:    rdp_read_extended_info_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         89
      ICount:          397
      EdgeCount:       115
      CyclomaticComplexity: 28
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
        - Stream_SafeSeekEx
        - WLog_Print_dbg_tag
        - freerdp_performance_flags_split
        - freerdp_settings_get_bool
        - freerdp_settings_set_bool
        - rdp_get_client_address_max_size
        - rdp_read_client_auto_reconnect_cookie
        - rdp_read_client_time_zone
        - rdp_read_info_null_string
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:372,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:375,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:377,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:380,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/info.c:381,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/info.c:386,53'
          Dst:             rdp_get_client_address_max_size
        - Src:             'libfreerdp/core/info.c:385,7'
          Dst:             rdp_read_info_null_string
        - Src:             'libfreerdp/core/info.c:389,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:392,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/info.c:402,7'
          Dst:             rdp_read_info_null_string
        - Src:             'libfreerdp/core/info.c:412,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/info.c:415,7'
          Dst:             rdp_read_client_time_zone
        - Src:             'libfreerdp/core/info.c:419,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/info.c:421,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:424,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:427,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/info.c:430,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:433,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:434,2'
          Dst:             freerdp_performance_flags_split
        - Src:             'libfreerdp/core/info.c:437,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/info.c:440,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:443,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/info.c:449,8'
          Dst:             rdp_read_client_auto_reconnect_cookie
        - Src:             'libfreerdp/core/info.c:454,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/info.c:457,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/info.c:460,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/info.c:463,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/info.c:466,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/info.c:469,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:472,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/info.c:476,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/info.c:478,8'
          Dst:             rdp_read_info_null_string
        - Src:             'libfreerdp/core/info.c:483,7'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/info.c:486,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:489,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/info.c:492,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:499,8'
          Dst:             freerdp_settings_set_bool
    - 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:    13
      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:    rdp_read_info_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 657
      functionLinenumberEnd: 716
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          181
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Pointer
        - Stream_Read
        - Stream_Seek
        - WLog_Print_dbg_tag
        - freerdp_settings_set_string
        - freerdp_settings_set_string_from_utf16N
        - freerdp_settings_set_string_len
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:668,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/info.c:671,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:682,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:688,26'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/info.c:689,9'
          Dst:             freerdp_settings_set_string_from_utf16N
        - Src:             'libfreerdp/core/info.c:695,25'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/info.c:696,9'
          Dst:             freerdp_settings_set_string_len
        - Src:             'libfreerdp/core/info.c:701,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/info.c:704,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/info.c:708,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:709,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/info.c:710,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rdp_send_server_status_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1676
      functionLinenumberEnd: 1687
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          82
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write_UINT32_unchecked
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:1680,6'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/info.c:1685,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1685,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1685,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1686,9'
          Dst:             rdp_send_data_pdu
    - functionName:    rdp_write_logon_info_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1586
      functionLinenumberEnd: 1626
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         128
      ICount:          337
      EdgeCount:       133
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Seek
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:1602,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/info.c:1605,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1605,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1605,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:1606,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1606,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1606,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1610,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1611,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1612,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1613,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1613,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1613,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1614,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/info.c:1619,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1620,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1620,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1620,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1621,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1621,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1621,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1624,2'
          Dst:             Stream_Seek
    - functionName:    rdp_write_logon_info_plain
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1577
      functionLinenumberEnd: 1583
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:1578,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/info.c:1581,2'
          Dst:             Stream_Seek
    - functionName:    rdp_write_logon_info_v2
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1528
      functionLinenumberEnd: 1574
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         128
      ICount:          445
      EdgeCount:       143
      CyclomaticComplexity: 17
      functionsReached:
        - ConvertUtf8NToWChar
        - Stream_EnsureRemainingCapacity
        - Stream_Seek
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UTF16_String_From_UTF8
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:1534,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/info.c:1537,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:1542,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1543,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1543,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1543,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1546,18'
          Dst:             strnlen
        - Src:             'libfreerdp/core/info.c:1547,24'
          Dst:             ConvertUtf8NToWChar
        - Src:             'libfreerdp/core/info.c:1550,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1550,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1554,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1554,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1554,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1558,20'
          Dst:             strnlen
        - Src:             'libfreerdp/core/info.c:1559,24'
          Dst:             ConvertUtf8NToWChar
        - Src:             'libfreerdp/core/info.c:1562,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1562,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1566,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1566,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1566,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1567,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/info.c:1568,6'
          Dst:             Stream_Write_UTF16_String_From_UTF8
        - Src:             'libfreerdp/core/info.c:1570,6'
          Dst:             Stream_Write_UTF16_String_From_UTF8
    - functionName:    rdp_write_logon_info_v1
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1479
      functionLinenumberEnd: 1525
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         71
      ICount:          260
      EdgeCount:       80
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UTF16_String_From_UTF8
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:1485,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/info.c:1490,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1493,22'
          Dst:             strnlen
        - Src:             'libfreerdp/core/info.c:1501,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1501,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1501,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1502,7'
          Dst:             Stream_Write_UTF16_String_From_UTF8
        - Src:             'libfreerdp/core/info.c:1508,22'
          Dst:             strnlen
        - Src:             'libfreerdp/core/info.c:1516,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1516,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1516,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1518,7'
          Dst:             Stream_Write_UTF16_String_From_UTF8
        - Src:             'libfreerdp/core/info.c:1523,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1523,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1523,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    rdp_send_save_session_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1629
      functionLinenumberEnd: 1673
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          152
      EdgeCount:       36
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Release
        - Stream_Write_UINT32_unchecked
        - WLog_Print_dbg_tag
        - rdp_data_pdu_init
        - rdp_send_data_pdu
        - rdp_write_logon_info_ex
        - rdp_write_logon_info_plain
        - rdp_write_logon_info_v1
        - rdp_write_logon_info_v2
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/info.c:1642,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/info.c:1633,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1635,15'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/info.c:1640,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1640,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1640,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:1645,13'
          Dst:             rdp_write_logon_info_v1
        - Src:             'libfreerdp/core/info.c:1649,13'
          Dst:             rdp_write_logon_info_v2
        - Src:             'libfreerdp/core/info.c:1653,13'
          Dst:             rdp_write_logon_info_plain
        - Src:             'libfreerdp/core/info.c:1657,13'
          Dst:             rdp_write_logon_info_ex
        - Src:             'libfreerdp/core/info.c:1661,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:1668,7'
          Dst:             rdp_send_data_pdu
        - Src:             'libfreerdp/core/info.c:1670,3'
          Dst:             Stream_Release
    - functionName:    rdp_recv_logon_info_extended
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1337
      functionLinenumberEnd: 1404
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          242
      EdgeCount:       69
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetRemainingLength
        - Stream_Seek
        - WLog_Print_dbg_tag
        - rdp_read_server_auto_reconnect_cookie
        - rdp_recv_logon_error_info
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:1342,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1343,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1344,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1346,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:1348,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/info.c:1348,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:1353,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/info.c:1354,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:1356,24'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:1358,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/info.c:1358,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:1364,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:1370,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:1374,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:1376,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:1379,8'
          Dst:             rdp_read_server_auto_reconnect_cookie
        - Src:             'libfreerdp/core/info.c:1387,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:1390,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:1392,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:1395,8'
          Dst:             rdp_recv_logon_error_info
        - Src:             'libfreerdp/core/info.c:1399,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:1402,2'
          Dst:             Stream_Seek
    - functionName:    rdp_recv_logon_plain_notify
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1293
      functionLinenumberEnd: 1301
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:1295,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:1298,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/info.c:1299,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rdp_recv_logon_info_v2
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1197
      functionLinenumberEnd: 1290
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         61
      ICount:          261
      EdgeCount:       72
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_GetRemainingLength
        - Stream_SafeSeekEx
        - Stream_Seek
        - WLog_Print_dbg_tag
        - rdp_info_read_string
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_HexDump
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:1203,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1204,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1205,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1209,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:1212,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/info.c:1215,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:1220,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:1230,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:1236,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:1237,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:1238,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:1239,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/info.c:1247,7'
          Dst:             rdp_info_read_string
        - Src:             'libfreerdp/core/info.c:1256,7'
          Dst:             rdp_info_read_string
        - Src:             'libfreerdp/core/info.c:1264,22'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/info.c:1268,22'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/info.c:1276,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:1277,5'
          Dst:             winpr_HexDump
        - Src:             'libfreerdp/core/info.c:1280,9'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/info.c:1285,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rdp_free_logon_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1109
      functionLinenumberEnd: 1117
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rdp_recv_logon_info_v1
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1162
      functionLinenumberEnd: 1194
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          106
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - rdp_info_read_string
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:1167,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1169,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:1172,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:1177,7'
          Dst:             rdp_info_read_string
        - Src:             'libfreerdp/core/info.c:1180,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:1185,7'
          Dst:             rdp_info_read_string
        - Src:             'libfreerdp/core/info.c:1188,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:1189,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    rdp_recv_save_session_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1407
      functionLinenumberEnd: 1476
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          226
      EdgeCount:       46
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - freerdp_session_logon_type_str
        - rdp_free_logon_info
        - rdp_recv_logon_info_extended
        - rdp_recv_logon_info_v1
        - rdp_recv_logon_info_v2
        - rdp_recv_logon_plain_notify
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/info.c:1419,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/info.c:1414,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/info.c:1417,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:1424,13'
          Dst:             rdp_recv_logon_info_v1
        - Src:             'libfreerdp/core/info.c:1429,4'
          Dst:             rdp_free_logon_info
        - Src:             'libfreerdp/core/info.c:1436,13'
          Dst:             rdp_recv_logon_info_v2
        - Src:             'libfreerdp/core/info.c:1441,4'
          Dst:             rdp_free_logon_info
        - Src:             'libfreerdp/core/info.c:1446,13'
          Dst:             rdp_recv_logon_plain_notify
        - Src:             'libfreerdp/core/info.c:1456,13'
          Dst:             rdp_recv_logon_info_extended
        - Src:             'libfreerdp/core/info.c:1464,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:1471,3'
          Dst:             freerdp_session_logon_type_str
        - Src:             'libfreerdp/core/info.c:1471,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_session_logon_type_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/info.c:47,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    rdp_write_info_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 1037
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         258
      ICount:          956
      EdgeCount:       293
      CyclomaticComplexity: 37
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - freerdp_settings_get_string
        - freerdp_settings_get_string_as_utf16
        - rdp_info_package_flags_description
        - rdp_write_extended_info_packet
        - strlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:824,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:826,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:877,29'
          Dst:             rdp_info_package_flags_description
        - Src:             'libfreerdp/core/info.c:881,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:886,12'
          Dst:             freerdp_settings_get_string_as_utf16
        - Src:             'libfreerdp/core/info.c:889,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:895,14'
          Dst:             freerdp_settings_get_string_as_utf16
        - Src:             'libfreerdp/core/info.c:898,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:919,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:929,11'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/info.c:934,16'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/core/info.c:937,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:947,15'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/info.c:951,15'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/info.c:953,19'
          Dst:             strlen
        - Src:             'libfreerdp/core/info.c:955,22'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/core/info.c:958,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:963,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:972,8'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/info.c:975,17'
          Dst:             freerdp_settings_get_string_as_utf16
        - Src:             'libfreerdp/core/info.c:979,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:984,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/info.c:988,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:988,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:988,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:989,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:989,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:989,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/info.c:990,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:990,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:990,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:991,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:991,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:991,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:992,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:992,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:992,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:993,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:993,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:993,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:994,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:994,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:994,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:996,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/info.c:999,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:1001,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/info.c:1004,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:1006,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/info.c:1009,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:1011,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/info.c:1014,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:1016,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/info.c:1019,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/info.c:1034,9'
          Dst:             rdp_write_extended_info_packet
    - functionName:    rdp_send_client_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1088
      functionLinenumberEnd: 1106
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          65
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Release
        - WLog_Print_dbg_tag
        - rdp_send
        - rdp_send_stream_init
        - rdp_write_info_packet
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:1091,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1092,6'
          Dst:             rdp_send_stream_init
        - Src:             'libfreerdp/core/info.c:1096,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:1100,7'
          Dst:             rdp_write_info_packet
        - Src:             'libfreerdp/core/info.c:1102,3'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/info.c:1105,9'
          Dst:             rdp_send
    - functionName:    rdp_read_info_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 724
      functionLinenumberEnd: 800
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          366
      EdgeCount:       55
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetRemainingLength
        - Stream_Seek
        - rdp_read_extended_info_packet
        - rdp_read_info_string
        - stream_read_u16_le
        - stream_read_u32_le
        - tpkt_ensure_stream_consumed_
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:735,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/info.c:738,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:739,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/info.c:767,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/info.c:768,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/info.c:769,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/info.c:770,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/info.c:771,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/info.c:773,7'
          Dst:             rdp_read_info_string
        - Src:             'libfreerdp/core/info.c:776,7'
          Dst:             rdp_read_info_string
        - Src:             'libfreerdp/core/info.c:780,7'
          Dst:             rdp_read_info_string
        - Src:             'libfreerdp/core/info.c:784,7'
          Dst:             rdp_read_info_string
        - Src:             'libfreerdp/core/info.c:787,7'
          Dst:             rdp_read_info_string
        - Src:             'libfreerdp/core/info.c:792,8'
          Dst:             rdp_read_extended_info_packet
        - Src:             'libfreerdp/core/info.c:796,22'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/info.c:797,7'
          Dst:             tpkt_ensure_stream_consumed_
        - Src:             'libfreerdp/core/info.c:798,3'
          Dst:             Stream_Seek
    - functionName:    rdp_recv_client_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1047
      functionLinenumberEnd: 1079
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          127
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Print_dbg_tag
        - rdp_decrypt
        - rdp_get_state
        - rdp_read_header
        - rdp_read_info_packet
        - rdp_read_security_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/info.c:1052,2'
          Dst:             rdp_get_state
        - Src:             'libfreerdp/core/info.c:1052,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/info.c:1054,7'
          Dst:             rdp_read_header
        - Src:             'libfreerdp/core/info.c:1057,7'
          Dst:             rdp_read_security_header
        - Src:             'libfreerdp/core/info.c:1067,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/info.c:1073,9'
          Dst:             rdp_decrypt
        - Src:             'libfreerdp/core/info.c:1078,9'
          Dst:             rdp_read_info_packet
    - functionName:    freerdp_session_logon_type_data_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/info.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          120
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - snprintf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/core/info.c:65,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/info.c:72,11'
          Dst:             snprintf
        - Src:             'libfreerdp/core/info.c:74,11'
          Dst:             snprintf
        - Src:             'libfreerdp/core/info.c:79,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/info.c:85,11'
          Dst:             snprintf
        - Src:             'libfreerdp/core/info.c:87,11'
          Dst:             snprintf
        - Src:             'libfreerdp/core/info.c:96,10'
          Dst:             snprintf
    - functionName:    boolstr
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 976
      functionLinenumberEnd: 980
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    input_write_unicode_keyboard_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          98
      EdgeCount:       41
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:200,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:200,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:200,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/input.c:201,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:201,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:201,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/input.c:202,2'
          Dst:             Stream_Write_UINT16_unchecked
    - 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:    19
      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:    input_write_keyboard_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          124
      EdgeCount:       53
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:167,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:168,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:170,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:170,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:170,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/input.c:171,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:171,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:171,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/input.c:172,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    rdp_write_input_event_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          110
      EdgeCount:       43
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:100,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:101,2'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/core/input.c:101,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:102,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:102,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:102,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/input.c:103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:103,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:103,2'
          Dst:             Stream_Write_UINT16_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:    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:    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:    rdp_write_client_input_pdu_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          89
      EdgeCount:       39
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:92,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:93,2'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/core/input.c:93,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:94,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:94,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:94,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/input.c:95,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    rdp_send_client_input_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          55
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - rdp_send_data_pdu
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:120,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:121,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:122,9'
          Dst:             rdp_send_data_pdu
    - functionName:    input_write_synchronize_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          87
      EdgeCount:       39
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:127,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:128,2'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/core/input.c:128,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:129,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/input.c:130,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:130,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:130,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    rdp_client_input_pdu_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rdp_data_pdu_init
        - rdp_write_client_input_pdu_header
        - rdp_write_input_event_header
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:108,15'
          Dst:             rdp_data_pdu_init
        - Src:             'libfreerdp/core/input.c:113,2'
          Dst:             rdp_write_client_input_pdu_header
        - Src:             'libfreerdp/core/input.c:114,2'
          Dst:             rdp_write_input_event_header
    - functionName:    input_write_extended_mouse_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          121
      EdgeCount:       45
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:307,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:307,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:307,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/input.c:308,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:308,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:308,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/input.c:309,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:309,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:309,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    winpr_Data_Write_INT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 323
      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:319,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write_INT16_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 899
      functionLinenumberEnd: 906
      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
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:900,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:901,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:902,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:902,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:904,3'
          Dst:             winpr_Data_Write_INT16
    - functionName:    input_write_mouse_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          121
      EdgeCount:       45
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:235,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:235,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:235,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/input.c:236,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:236,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:236,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/input.c:237,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:237,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:237,2'
          Dst:             Stream_Write_UINT16_unchecked
    - 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_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:    14
      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:    input_ensure_client_running
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          45
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_shall_disconnect_context
        - winpr_int_assert
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:135,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:136,6'
          Dst:             freerdp_shall_disconnect_context
        - Src:             'libfreerdp/core/input.c:138,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:    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:    winpr_Data_Get_INT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Get_UINT16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:95,22'
          Dst:             winpr_Data_Get_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:    stream_read_i16_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 228
      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_INT16
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:222,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:223,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:223,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:225,19'
          Dst:             winpr_Data_Get_INT16
        - Src:             'winpr/include/winpr/stream.h:227,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:    9
      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_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_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:    1
      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:    input_recv_relmouse_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 771
      functionLinenumberEnd: 796
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          136
      EdgeCount:       36
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - stream_read_i16_le
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:776,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:777,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:779,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/input.c:782,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/input.c:783,2'
          Dst:             stream_read_i16_le
        - Src:             'libfreerdp/core/input.c:784,2'
          Dst:             stream_read_i16_le
        - Src:             'libfreerdp/core/input.c:786,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/input.c:788,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/input.c:795,9'
          Dst:             WLog_Print_dbg_tag
    - 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:    13
      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:    input_recv_extended_mouse_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 799
      functionLinenumberEnd: 824
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          136
      EdgeCount:       36
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:804,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:805,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:807,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/input.c:810,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/input.c:811,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/input.c:812,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/input.c:814,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/input.c:816,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/input.c:823,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    input_recv_mouse_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 753
      functionLinenumberEnd: 768
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          115
      EdgeCount:       33
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:758,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:759,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:761,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/input.c:764,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/input.c:765,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/input.c:766,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/input.c:767,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    input_recv_unicode_keyboard_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 730
      functionLinenumberEnd: 750
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          128
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:734,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:735,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:737,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/input.c:740,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/input.c:741,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/input.c:742,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/input.c:749,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    input_recv_keyboard_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 727
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          148
      EdgeCount:       39
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:707,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:708,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:710,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/input.c:713,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/input.c:714,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/input.c:715,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/input.c:721,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/input.c:726,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    input_recv_sync_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 688
      functionLinenumberEnd: 700
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          101
      EdgeCount:       29
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek
        - WLog_Print_dbg_tag
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:691,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:692,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:694,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/input.c:697,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/input.c:698,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/input.c:699,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SyncEventFlag2Str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kbdflag2str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1257
      functionLinenumberEnd: 1273
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/input.c:1262,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    flag2str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1195
      functionLinenumberEnd: 1227
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          87
      EdgeCount:       32
      CyclomaticComplexity: 17
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/input.c:1201,3'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/input.c:1212,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    input_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.h:56,2'
          Dst:             winpr_int_assert
    - functionName:    input_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1184
      functionLinenumberEnd: 1192
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - MessageQueue_Free
        - input_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1187,28'
          Dst:             input_cast
        - Src:             'libfreerdp/core/input.c:1189,3'
          Dst:             MessageQueue_Free
    - functionName:    input_free_queued_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1155
      functionLinenumberEnd: 1158
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - input_message_queue_free_message
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1157,2'
          Dst:             input_message_queue_free_message
    - functionName:    input_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1161
      functionLinenumberEnd: 1181
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - MessageQueue_New
        - WLog_Get
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1163,51'
          Dst:             calloc
        - Src:             'libfreerdp/core/input.c:1171,17'
          Dst:             MessageQueue_New
        - Src:             'libfreerdp/core/input.c:1172,15'
          Dst:             WLog_Get
    - functionName:    input_process_events
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1147
      functionLinenumberEnd: 1152
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - input_message_queue_process_pending_messages
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1151,9'
          Dst:             input_message_queue_process_pending_messages
    - functionName:    freerdp_input_send_keyboard_pause_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1136
      functionLinenumberEnd: 1144
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          83
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - input_skip
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1140,6'
          Dst:             input_skip
        - Src:             'libfreerdp/core/input.c:1143,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    input_skip
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 985
      functionLinenumberEnd: 1011
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          148
      EdgeCount:       37
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - boolstr
        - freerdp_is_active_state
        - freerdp_settings_get_bool
        - vsnprintf
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:986,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:989,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:992,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:994,25'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/input.c:995,25'
          Dst:             freerdp_is_active_state
        - Src:             'libfreerdp/core/input.c:998,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/input.c:1004,9'
          Dst:             vsnprintf
        - Src:             'libfreerdp/core/input.c:1007,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/input.c:1007,3'
          Dst:             boolstr
        - Src:             'libfreerdp/core/input.c:1007,3'
          Dst:             boolstr
        - Src:             'libfreerdp/core/input.c:1007,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    freerdp_input_send_focus_in_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1123
      functionLinenumberEnd: 1133
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          92
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_input_keyboard_flags_string
        - input_skip
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1129,17'
          Dst:             freerdp_input_keyboard_flags_string
        - Src:             'libfreerdp/core/input.c:1128,6'
          Dst:             input_skip
        - Src:             'libfreerdp/core/input.c:1132,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_input_keyboard_flags_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SyncEventFlags2Str
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:87,9'
          Dst:             SyncEventFlags2Str
    - functionName:    SyncEventFlags2Str
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          117
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - SyncEventFlag2Str
        - snprintf
        - winpr_str_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:64,7'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/input.c:74,62'
          Dst:             SyncEventFlag2Str
        - Src:             'libfreerdp/core/input.c:74,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/input.c:75,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/input.c:79,7'
          Dst:             winpr_str_append
    - functionName:    freerdp_input_send_extended_mouse_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1108
      functionLinenumberEnd: 1120
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          102
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_input_mouse_flags_string
        - input_skip
        - input_update_last_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1114,17'
          Dst:             freerdp_input_mouse_flags_string
        - Src:             'libfreerdp/core/input.c:1113,6'
          Dst:             input_skip
        - Src:             'libfreerdp/core/input.c:1117,2'
          Dst:             input_update_last_event
        - Src:             'libfreerdp/core/input.c:1119,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_input_mouse_flags_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1231
      functionLinenumberEnd: 1254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - bool
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          117
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - flag2str
        - snprintf
        - winpr_str_append
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1235,7'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/input.c:1245,52'
          Dst:             flag2str
        - Src:             'libfreerdp/core/input.c:1245,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/input.c:1246,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/input.c:1250,7'
          Dst:             winpr_str_append
    - functionName:    input_update_last_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 954
      functionLinenumberEnd: 971
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          156
      EdgeCount:       47
      CyclomaticComplexity: 7
      functionsReached:
        - freerdp_settings_get_uint32
        - input_cast
        - time
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:955,27'
          Dst:             input_cast
        - Src:             'libfreerdp/core/input.c:957,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:958,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:960,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/input.c:962,22'
          Dst:             time
        - Src:             'libfreerdp/core/input.c:963,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:963,28'
          Dst:             winpr_int_assert
    - functionName:    freerdp_input_send_qoe_timestamp
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1100
      functionLinenumberEnd: 1105
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1104,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_input_send_rel_mouse_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1087
      functionLinenumberEnd: 1097
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          98
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_input_mouse_flags_string
        - input_skip
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1093,17'
          Dst:             freerdp_input_mouse_flags_string
        - Src:             'libfreerdp/core/input.c:1092,6'
          Dst:             input_skip
        - Src:             'libfreerdp/core/input.c:1096,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_input_send_mouse_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1070
      functionLinenumberEnd: 1084
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          105
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_input_mouse_flags_string
        - input_skip
        - input_update_last_event
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1076,17'
          Dst:             freerdp_input_mouse_flags_string
        - Src:             'libfreerdp/core/input.c:1075,6'
          Dst:             input_skip
        - Src:             'libfreerdp/core/input.c:1079,2'
          Dst:             input_update_last_event
        - Src:             'libfreerdp/core/input.c:1083,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_input_send_unicode_keyboard_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1055
      functionLinenumberEnd: 1067
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          97
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_input_keypress_flags_string
        - input_skip
        - input_update_last_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1061,17'
          Dst:             freerdp_input_keypress_flags_string
        - Src:             'libfreerdp/core/input.c:1060,6'
          Dst:             input_skip
        - Src:             'libfreerdp/core/input.c:1064,2'
          Dst:             input_update_last_event
        - Src:             'libfreerdp/core/input.c:1066,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_input_keypress_flags_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1276
      functionLinenumberEnd: 1299
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          112
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - kbdflag2str
        - snprintf
        - winpr_str_append
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1280,7'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/input.c:1290,52'
          Dst:             kbdflag2str
        - Src:             'libfreerdp/core/input.c:1290,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/input.c:1291,9'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/input.c:1295,7'
          Dst:             winpr_str_append
    - functionName:    freerdp_input_send_keyboard_event_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1044
      functionLinenumberEnd: 1051
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_input_send_keyboard_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1051,9'
          Dst:             freerdp_input_send_keyboard_event
    - functionName:    freerdp_input_send_keyboard_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1028
      functionLinenumberEnd: 1040
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          97
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_input_keypress_flags_string
        - input_skip
        - input_update_last_event
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1034,17'
          Dst:             freerdp_input_keypress_flags_string
        - Src:             'libfreerdp/core/input.c:1033,6'
          Dst:             input_skip
        - Src:             'libfreerdp/core/input.c:1037,2'
          Dst:             input_update_last_event
        - Src:             'libfreerdp/core/input.c:1039,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_input_send_synchronize_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1015
      functionLinenumberEnd: 1025
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          91
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_input_keyboard_flags_string
        - input_skip
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:1021,17'
          Dst:             freerdp_input_keyboard_flags_string
        - Src:             'libfreerdp/core/input.c:1020,6'
          Dst:             input_skip
        - Src:             'libfreerdp/core/input.c:1024,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    input_send_focus_in_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - input_send_keyboard_event
        - input_send_synchronize_event
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:347,7'
          Dst:             input_send_keyboard_event
        - Src:             'libfreerdp/core/input.c:351,7'
          Dst:             input_send_synchronize_event
        - Src:             'libfreerdp/core/input.c:355,9'
          Dst:             input_send_keyboard_event
    - functionName:    input_send_keyboard_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          84
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - input_ensure_client_running
        - input_write_keyboard_event
        - rdp_client_input_pdu_init
        - rdp_send_client_input_pdu
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:186,7'
          Dst:             input_ensure_client_running
        - Src:             'libfreerdp/core/input.c:189,6'
          Dst:             rdp_client_input_pdu_init
        - Src:             'libfreerdp/core/input.c:194,2'
          Dst:             input_write_keyboard_event
        - Src:             'libfreerdp/core/input.c:195,9'
          Dst:             rdp_send_client_input_pdu
    - functionName:    input_send_synchronize_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          78
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - input_ensure_client_running
        - input_write_synchronize_event
        - rdp_client_input_pdu_init
        - rdp_send_client_input_pdu
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:153,7'
          Dst:             input_ensure_client_running
        - Src:             'libfreerdp/core/input.c:156,15'
          Dst:             rdp_client_input_pdu_init
        - Src:             'libfreerdp/core/input.c:161,2'
          Dst:             input_write_synchronize_event
        - Src:             'libfreerdp/core/input.c:162,9'
          Dst:             rdp_send_client_input_pdu
    - functionName:    input_send_extended_mouse_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          141
      EdgeCount:       37
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - input_ensure_client_running
        - input_write_extended_mouse_event
        - rdp_client_input_pdu_init
        - rdp_send_client_input_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:316,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:317,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:318,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:321,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:323,7'
          Dst:             input_ensure_client_running
        - Src:             'libfreerdp/core/input.c:326,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/input.c:328,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/input.c:335,15'
          Dst:             rdp_client_input_pdu_init
        - Src:             'libfreerdp/core/input.c:340,2'
          Dst:             input_write_extended_mouse_event
        - Src:             'libfreerdp/core/input.c:341,9'
          Dst:             rdp_send_client_input_pdu
    - functionName:    input_send_relmouse_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          206
      EdgeCount:       65
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_Write_INT16_unchecked
        - Stream_Write_UINT16_unchecked
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - input_ensure_client_running
        - rdp_client_input_pdu_init
        - rdp_send_client_input_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:284,7'
          Dst:             input_ensure_client_running
        - Src:             'libfreerdp/core/input.c:287,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/input.c:289,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/input.c:293,6'
          Dst:             rdp_client_input_pdu_init
        - Src:             'libfreerdp/core/input.c:298,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:298,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:298,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/input.c:299,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:299,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:299,2'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/input.c:300,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:300,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:300,2'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/input.c:302,9'
          Dst:             rdp_send_client_input_pdu
    - functionName:    input_send_mouse_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          130
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - input_ensure_client_running
        - input_write_mouse_event
        - rdp_client_input_pdu_init
        - rdp_send_client_input_pdu
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:249,7'
          Dst:             input_ensure_client_running
        - Src:             'libfreerdp/core/input.c:252,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/input.c:256,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/input.c:264,15'
          Dst:             rdp_client_input_pdu_init
        - Src:             'libfreerdp/core/input.c:269,2'
          Dst:             input_write_mouse_event
        - Src:             'libfreerdp/core/input.c:270,9'
          Dst:             rdp_send_client_input_pdu
    - functionName:    input_send_unicode_keyboard_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          98
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - input_ensure_client_running
        - input_write_unicode_keyboard_event
        - rdp_client_input_pdu_init
        - rdp_send_client_input_pdu
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:214,7'
          Dst:             input_ensure_client_running
        - Src:             'libfreerdp/core/input.c:217,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/input.c:219,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/input.c:224,6'
          Dst:             rdp_client_input_pdu_init
        - Src:             'libfreerdp/core/input.c:229,2'
          Dst:             input_write_unicode_keyboard_event
        - Src:             'libfreerdp/core/input.c:230,9'
          Dst:             rdp_send_client_input_pdu
    - functionName:    input_send_keyboard_pause_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - input_send_keyboard_event
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:366,7'
          Dst:             input_send_keyboard_event
        - Src:             'libfreerdp/core/input.c:371,7'
          Dst:             input_send_keyboard_event
        - Src:             'libfreerdp/core/input.c:375,7'
          Dst:             input_send_keyboard_event
        - Src:             'libfreerdp/core/input.c:380,9'
          Dst:             input_send_keyboard_event
    - functionName:    input_send_fastpath_qoe_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 609
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         50
      ICount:          173
      EdgeCount:       54
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Free
        - Stream_Write_UINT32_unchecked
        - WLog_Print_dbg_tag
        - fastpath_input_pdu_init
        - fastpath_send_input_pdu
        - freerdp_settings_get_bool
        - input_ensure_client_running
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:579,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:580,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:581,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:584,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:586,7'
          Dst:             input_ensure_client_running
        - Src:             'libfreerdp/core/input.c:589,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/input.c:591,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/input.c:596,15'
          Dst:             fastpath_input_pdu_init
        - Src:             'libfreerdp/core/input.c:601,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/input.c:603,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/input.c:607,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:607,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:607,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/input.c:608,9'
          Dst:             fastpath_send_input_pdu
    - functionName:    input_send_fastpath_focus_in_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 644
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         88
      ICount:          234
      EdgeCount:       90
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - fastpath_input_pdu_init_header
        - fastpath_send_multiple_input_pdu
        - input_ensure_client_running
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:618,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:619,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:622,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:624,7'
          Dst:             input_ensure_client_running
        - Src:             'libfreerdp/core/input.c:627,6'
          Dst:             fastpath_input_pdu_init_header
        - Src:             'libfreerdp/core/input.c:634,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:634,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:634,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/input.c:635,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/input.c:638,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:638,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:638,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/input.c:641,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:641,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:641,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/input.c:642,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/input.c:643,9'
          Dst:             fastpath_send_multiple_input_pdu
    - functionName:    input_send_fastpath_extended_mouse_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          131
      EdgeCount:       31
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - fastpath_input_pdu_init
        - fastpath_send_input_pdu
        - freerdp_settings_get_bool
        - input_ensure_client_running
        - input_write_extended_mouse_event
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:516,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:517,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:520,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:522,7'
          Dst:             input_ensure_client_running
        - Src:             'libfreerdp/core/input.c:525,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/input.c:527,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/input.c:534,6'
          Dst:             fastpath_input_pdu_init
        - Src:             'libfreerdp/core/input.c:539,2'
          Dst:             input_write_extended_mouse_event
        - Src:             'libfreerdp/core/input.c:540,9'
          Dst:             fastpath_send_input_pdu
    - functionName:    input_send_fastpath_relmouse_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 545
      functionLinenumberEnd: 575
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         76
      ICount:          235
      EdgeCount:       79
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write_INT16_unchecked
        - Stream_Write_UINT16_unchecked
        - WLog_Print_dbg_tag
        - fastpath_input_pdu_init
        - fastpath_send_input_pdu
        - freerdp_settings_get_bool
        - input_ensure_client_running
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:550,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:551,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:552,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:555,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:557,7'
          Dst:             input_ensure_client_running
        - Src:             'libfreerdp/core/input.c:560,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/input.c:562,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/input.c:566,6'
          Dst:             fastpath_input_pdu_init
        - Src:             'libfreerdp/core/input.c:571,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:571,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:571,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/input.c:572,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:572,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:572,2'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/input.c:573,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:573,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:573,2'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/input.c:574,9'
          Dst:             fastpath_send_input_pdu
    - functionName:    input_send_fastpath_mouse_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          161
      EdgeCount:       41
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - fastpath_input_pdu_init
        - fastpath_send_input_pdu
        - freerdp_settings_get_bool
        - input_ensure_client_running
        - input_write_mouse_event
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:478,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:479,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:480,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:483,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:485,7'
          Dst:             input_ensure_client_running
        - Src:             'libfreerdp/core/input.c:488,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/input.c:492,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/input.c:500,6'
          Dst:             fastpath_input_pdu_init
        - Src:             'libfreerdp/core/input.c:505,2'
          Dst:             input_write_mouse_event
        - Src:             'libfreerdp/core/input.c:506,9'
          Dst:             fastpath_send_input_pdu
    - functionName:    input_send_fastpath_unicode_keyboard_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          182
      EdgeCount:       51
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - WLog_Print_dbg_tag
        - fastpath_input_pdu_init
        - fastpath_send_input_pdu
        - freerdp_settings_get_bool
        - input_ensure_client_running
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:445,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:446,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:447,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:450,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:452,7'
          Dst:             input_ensure_client_running
        - Src:             'libfreerdp/core/input.c:455,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/input.c:457,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/input.c:462,6'
          Dst:             fastpath_input_pdu_init
        - Src:             'libfreerdp/core/input.c:468,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:468,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:468,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/input.c:469,9'
          Dst:             fastpath_send_input_pdu
    - functionName:    input_send_fastpath_keyboard_pause_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 647
      functionLinenumberEnd: 685
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         106
      ICount:          199
      EdgeCount:       108
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - fastpath_input_pdu_init_header
        - fastpath_send_multiple_input_pdu
        - input_ensure_client_running
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:658,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:659,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:662,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:664,7'
          Dst:             input_ensure_client_running
        - Src:             'libfreerdp/core/input.c:667,6'
          Dst:             fastpath_input_pdu_init_header
        - Src:             'libfreerdp/core/input.c:673,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/input.c:674,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/input.c:676,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/input.c:677,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/input.c:679,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/input.c:680,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/input.c:682,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/input.c:683,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/input.c:684,9'
          Dst:             fastpath_send_multiple_input_pdu
    - functionName:    input_send_fastpath_keyboard_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          189
      EdgeCount:       48
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - fastpath_input_pdu_init
        - fastpath_send_input_pdu
        - input_ensure_client_running
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:415,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:416,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:419,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:421,7'
          Dst:             input_ensure_client_running
        - Src:             'libfreerdp/core/input.c:427,6'
          Dst:             fastpath_input_pdu_init
        - Src:             'libfreerdp/core/input.c:433,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:434,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/input.c:435,9'
          Dst:             fastpath_send_input_pdu
    - functionName:    input_send_fastpath_synchronize_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          103
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - fastpath_input_pdu_init
        - fastpath_send_input_pdu
        - input_ensure_client_running
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:390,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:391,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:394,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:396,7'
          Dst:             input_ensure_client_running
        - Src:             'libfreerdp/core/input.c:400,6'
          Dst:             fastpath_input_pdu_init
        - Src:             'libfreerdp/core/input.c:405,9'
          Dst:             fastpath_send_input_pdu
    - functionName:    input_register_client_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 914
      functionLinenumberEnd: 950
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          107
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_settings_get_bool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:925,6'
          Dst:             freerdp_settings_get_bool
    - functionName:    input_recv_event
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 827
      functionLinenumberEnd: 885
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          166
      EdgeCount:       46
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek
        - WLog_Print_dbg_tag
        - input_recv_extended_mouse_event
        - input_recv_keyboard_event
        - input_recv_mouse_event
        - input_recv_relmouse_event
        - input_recv_sync_event
        - input_recv_unicode_keyboard_event
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/input.c:839,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/input.c:830,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:831,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:833,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/input.c:836,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/input.c:837,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/input.c:842,9'
          Dst:             input_recv_sync_event
        - Src:             'libfreerdp/core/input.c:848,9'
          Dst:             input_recv_keyboard_event
        - Src:             'libfreerdp/core/input.c:854,9'
          Dst:             input_recv_unicode_keyboard_event
        - Src:             'libfreerdp/core/input.c:860,9'
          Dst:             input_recv_mouse_event
        - Src:             'libfreerdp/core/input.c:866,9'
          Dst:             input_recv_extended_mouse_event
        - Src:             'libfreerdp/core/input.c:872,9'
          Dst:             input_recv_relmouse_event
        - Src:             'libfreerdp/core/input.c:878,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/input.c:880,4'
          Dst:             Stream_Seek
    - functionName:    input_recv
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/input.c'
      linkageType:     InternalLinkage
      functionLinenumber: 888
      functionLinenumberEnd: 911
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          106
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek
        - input_recv_event
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/input.c:891,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:892,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/input.c:894,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/input.c:897,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/input.c:898,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/input.c:901,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/input.c:906,8'
          Dst:             input_recv_event
    - functionName:    license_blob_type_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       24
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/core/license.c:280,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    license_write_scope_list
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1751
      functionLinenumberEnd: 1774
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          166
      EdgeCount:       48
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_Write_UINT32_unchecked
        - license_check_stream_capacity
        - license_write_binary_blob
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1752,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1754,7'
          Dst:             license_check_stream_capacity
        - Src:             'libfreerdp/core/license.c:1757,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1757,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1757,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/license.c:1759,7'
          Dst:             license_check_stream_capacity
        - Src:             'libfreerdp/core/license.c:1764,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1769,8'
          Dst:             license_write_binary_blob
    - functionName:    license_check_stream_capacity
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 533
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogEx
        - winpr_int_assert
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:534,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:536,10'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
    - 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:    11
      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:    license_write_binary_blob
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1635
      functionLinenumberEnd: 1647
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          149
      EdgeCount:       45
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1636,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1638,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/license.c:1641,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1641,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1641,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/license.c:1642,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1642,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1642,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/license.c:1645,3'
          Dst:             Stream_Write
    - 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:    9
      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:    12
      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_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:    10
      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:    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:    license_write_product_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1480
      functionLinenumberEnd: 1523
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         88
      ICount:          331
      EdgeCount:       100
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - license_check_stream_capacity
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1481,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1483,7'
          Dst:             license_check_stream_capacity
        - Src:             'libfreerdp/core/license.c:1486,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1486,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1486,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/license.c:1487,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1487,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1487,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/license.c:1493,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1493,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:1498,7'
          Dst:             license_check_stream_capacity
        - Src:             'libfreerdp/core/license.c:1502,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/license.c:1504,7'
          Dst:             license_check_stream_capacity
        - Src:             'libfreerdp/core/license.c:1507,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1507,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1507,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/license.c:1512,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1512,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:1517,7'
          Dst:             license_check_stream_capacity
        - Src:             'libfreerdp/core/license.c:1521,2'
          Dst:             Stream_Write
    - functionName:    license_write_license_request_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2039
      functionLinenumberEnd: 2065
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          110
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_Write
        - license_check_stream_capacity
        - license_write_binary_blob
        - license_write_product_info
        - license_write_scope_list
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2040,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2043,7'
          Dst:             license_check_stream_capacity
        - Src:             'libfreerdp/core/license.c:2046,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/license.c:2049,7'
          Dst:             license_write_product_info
        - Src:             'libfreerdp/core/license.c:2053,7'
          Dst:             license_write_binary_blob
        - Src:             'libfreerdp/core/license.c:2057,7'
          Dst:             license_write_binary_blob
        - Src:             'libfreerdp/core/license.c:2061,7'
          Dst:             license_write_scope_list
    - functionName:    license_request_type_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 275
      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:   'libfreerdp/core/license.c:254,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    license_get_state_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2961
      functionLinenumberEnd: 2983
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       20
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/license.c:2962,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    license_scope_list_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1789
      functionLinenumberEnd: 1804
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          108
      EdgeCount:       28
      CyclomaticComplexity: 5
      functionsReached:
        - license_free_binary_blob
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1790,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1791,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1795,3'
          Dst:             license_free_binary_blob
    - functionName:    license_free_binary_blob
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1709
      functionLinenumberEnd: 1715
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    license_write_server_upgrade_license
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 887
      functionLinenumberEnd: 897
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          65
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Write
        - license_check_stream_capacity
        - license_write_binary_blob
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:888,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:890,7'
          Dst:             license_write_binary_blob
        - Src:             'libfreerdp/core/license.c:892,7'
          Dst:             license_check_stream_capacity
        - Src:             'libfreerdp/core/license.c:895,2'
          Dst:             Stream_Write
    - functionName:    license_read_platform_challenge_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2722
      functionLinenumberEnd: 2779
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          86
      EdgeCount:       35
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2723,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2724,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2725,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2726,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2727,2'
          Dst:             winpr_int_assert
    - functionName:    license_preferred_key_exchange_alg_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       11
      CyclomaticComplexity: 7
      functionsReached:
        - snprintf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/license.c:237,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/license.c:247,8'
          Dst:             snprintf
    - functionName:    license_read_encrypted_premaster_secret_blob
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1680
      functionLinenumberEnd: 1686
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - license_read_binary_blob
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1681,7'
          Dst:             license_read_binary_blob
        - Src:             'libfreerdp/core/license.c:1683,2'
          Dst:             winpr_int_assert
    - functionName:    license_read_binary_blob
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1606
      functionLinenumberEnd: 1625
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          94
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Pointer
        - Stream_SafeSeekEx
        - license_check_stream_length
        - license_read_binary_blob_data
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1610,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1612,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:1615,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/license.c:1616,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/license.c:1618,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:1621,59'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/license.c:1621,7'
          Dst:             license_read_binary_blob_data
        - Src:             'libfreerdp/core/license.c:1624,9'
          Dst:             Stream_SafeSeekEx
    - functionName:    license_check_stream_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          104
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    28
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:513,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/license.c:515,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:519,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:519,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:524,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:524,3'
          Dst:             WLog_PrintTextMessage
    - 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:    7
      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_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    license_read_binary_blob_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1558
      functionLinenumberEnd: 1596
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         61
      ICount:          267
      EdgeCount:       71
      CyclomaticComplexity: 12
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - license_blob_type_string
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1559,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1560,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1561,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1569,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1569,3'
          Dst:             license_blob_type_string
        - Src:             'libfreerdp/core/license.c:1569,3'
          Dst:             license_blob_type_string
        - Src:             'libfreerdp/core/license.c:1569,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:1579,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1579,3'
          Dst:             license_blob_type_string
        - Src:             'libfreerdp/core/license.c:1579,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:1590,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1590,3'
          Dst:             WLog_PrintTextMessage
    - 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:    license_check_preferred_alg
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1903
      functionLinenumberEnd: 1920
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          96
      EdgeCount:       27
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - license_preferred_key_exchange_alg_string
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1904,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1905,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1911,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1911,3'
          Dst:             license_preferred_key_exchange_alg_string
        - Src:             'libfreerdp/core/license.c:1911,3'
          Dst:             license_preferred_key_exchange_alg_string
        - Src:             'libfreerdp/core/license.c:1911,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    license_server_send_new_or_upgrade_license
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 901
      functionLinenumberEnd: 917
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Release
        - license_send
        - license_send_stream_init
        - license_write_server_upgrade_license
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:903,15'
          Dst:             license_send_stream_init
        - Src:             'libfreerdp/core/license.c:909,7'
          Dst:             license_write_server_upgrade_license
        - Src:             'libfreerdp/core/license.c:912,9'
          Dst:             license_send
        - Src:             'libfreerdp/core/license.c:915,2'
          Dst:             Stream_Release
    - functionName:    license_send_stream_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 797
      functionLinenumberEnd: 833
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          139
      EdgeCount:       33
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_GetPosition
        - Stream_Release
        - Stream_SafeSeekEx
        - rdp_send_stream_init
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:798,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:799,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:800,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:820,15'
          Dst:             rdp_send_stream_init
        - Src:             'libfreerdp/core/license.c:825,40'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/license.c:826,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/license.c:831,2'
          Dst:             Stream_Release
    - functionName:    license_send
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 843
      functionLinenumberEnd: 884
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          191
      EdgeCount:       49
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_GetPosition
        - Stream_Release
        - Stream_SetPosition
        - license_write_preamble
        - rdp_send
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:844,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:845,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:848,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:851,24'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/license.c:852,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:853,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:856,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/license.c:868,7'
          Dst:             license_write_preamble
        - Src:             'libfreerdp/core/license.c:870,3'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/license.c:880,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/license.c:882,19'
          Dst:             rdp_send
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    license_write_preamble
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 777
      functionLinenumberEnd: 786
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - char
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          135
      EdgeCount:       49
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:778,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/license.c:782,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:782,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:782,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/license.c:783,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:783,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:783,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/license.c:784,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:784,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:784,2'
          Dst:             Stream_Write_UINT16_unchecked
    - 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_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:    license_read_client_platform_challenge_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2799
      functionLinenumberEnd: 2811
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          86
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Read
        - license_check_stream_length
        - license_read_binary_blob
        - license_read_platform_challenge_response
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2800,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2802,7'
          Dst:             license_read_binary_blob
        - Src:             'libfreerdp/core/license.c:2804,7'
          Dst:             license_read_binary_blob
        - Src:             'libfreerdp/core/license.c:2806,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2809,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/license.c:2810,9'
          Dst:             license_read_platform_challenge_response
    - 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:    8
      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:    license_read_license_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1923
      functionLinenumberEnd: 1981
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          205
      EdgeCount:       52
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_Read
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_certificate_get_info
        - license_check_preferred_alg
        - license_check_stream_length
        - license_read_binary_blob
        - license_read_encrypted_premaster_secret_blob
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1927,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1928,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1930,28'
          Dst:             freerdp_certificate_get_info
        - Src:             'libfreerdp/core/license.c:1935,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:1939,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/license.c:1940,7'
          Dst:             license_check_preferred_alg
        - Src:             'libfreerdp/core/license.c:1942,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/license.c:1945,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/license.c:1950,8'
          Dst:             license_read_encrypted_premaster_secret_blob
        - Src:             'libfreerdp/core/license.c:1956,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1956,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:1965,7'
          Dst:             license_read_binary_blob
        - Src:             'libfreerdp/core/license.c:1969,7'
          Dst:             license_read_binary_blob
        - Src:             'libfreerdp/core/license.c:1973,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:1976,2'
          Dst:             Stream_Read
    - 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:    14
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:114,3'
          Dst:             winpr_int_assert
    - functionName:    license_send_platform_challenge_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2166
      functionLinenumberEnd: 2195
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Release
        - Stream_Write
        - Stream_Zero
        - license_check_stream_capacity
        - license_check_stream_length
        - license_send
        - license_send_stream_init
        - license_write_binary_blob
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2168,15'
          Dst:             license_send_stream_init
        - Src:             'libfreerdp/core/license.c:2175,7'
          Dst:             license_check_stream_capacity
        - Src:             'libfreerdp/core/license.c:2178,2'
          Dst:             Stream_Zero
        - Src:             'libfreerdp/core/license.c:2181,7'
          Dst:             license_write_binary_blob
        - Src:             'libfreerdp/core/license.c:2185,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2189,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/license.c:2191,9'
          Dst:             license_send
        - Src:             'libfreerdp/core/license.c:2193,2'
          Dst:             Stream_Release
    - 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_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:    license_read_new_license_request_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2482
      functionLinenumberEnd: 2526
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          206
      EdgeCount:       52
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_Read
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_certificate_get_info
        - license_check_preferred_alg
        - license_check_stream_length
        - license_read_binary_blob
        - license_read_encrypted_premaster_secret_blob
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2485,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2487,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2491,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/license.c:2492,7'
          Dst:             license_check_preferred_alg
        - Src:             'libfreerdp/core/license.c:2495,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/license.c:2496,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/license.c:2501,7'
          Dst:             license_read_encrypted_premaster_secret_blob
        - Src:             'libfreerdp/core/license.c:2505,28'
          Dst:             freerdp_certificate_get_info
        - Src:             'libfreerdp/core/license.c:2507,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:2507,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:2511,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:2511,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:2519,7'
          Dst:             license_read_binary_blob
        - Src:             'libfreerdp/core/license.c:2522,7'
          Dst:             license_read_binary_blob
    - functionName:    saveCal
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 577
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         120
      ICount:          435
      EdgeCount:       142
      CyclomaticComplexity: 24
      functionsReached:
        - GetCombinedPath
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - computeCalHash
        - fclose
        - freerdp_settings_get_string
        - fwrite
        - snprintf
        - winpr_DeleteFile
        - winpr_MoveFileEx
        - winpr_PathFileExists
        - winpr_PathMakePath
        - winpr_fopen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:588,21'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/license.c:590,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:591,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:592,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:594,7'
          Dst:             winpr_PathFileExists
        - Src:             'libfreerdp/core/license.c:596,8'
          Dst:             winpr_PathMakePath
        - Src:             'libfreerdp/core/license.c:598,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:598,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:601,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:601,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:604,27'
          Dst:             GetCombinedPath
        - Src:             'libfreerdp/core/license.c:606,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:606,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:611,7'
          Dst:             winpr_PathFileExists
        - Src:             'libfreerdp/core/license.c:613,8'
          Dst:             winpr_PathMakePath
        - Src:             'libfreerdp/core/license.c:615,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:615,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:618,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:618,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:621,7'
          Dst:             computeCalHash
        - Src:             'libfreerdp/core/license.c:623,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/license.c:624,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/license.c:626,19'
          Dst:             GetCombinedPath
        - Src:             'libfreerdp/core/license.c:628,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:628,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:633,22'
          Dst:             GetCombinedPath
        - Src:             'libfreerdp/core/license.c:635,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:635,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:640,7'
          Dst:             winpr_fopen
        - Src:             'libfreerdp/core/license.c:643,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:643,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:647,12'
          Dst:             fwrite
        - Src:             'libfreerdp/core/license.c:648,8'
          Dst:             fclose
        - Src:             'libfreerdp/core/license.c:652,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:652,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:653,3'
          Dst:             winpr_DeleteFile
        - Src:             'libfreerdp/core/license.c:657,8'
          Dst:             winpr_MoveFileEx
        - Src:             'libfreerdp/core/license.c:659,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:659,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    computeCalHash
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          165
      EdgeCount:       49
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - snprintf
        - strlen
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_New
        - winpr_Digest_Update
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:548,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:549,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:554,15'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/license.c:556,7'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/license.c:558,56'
          Dst:             strlen
        - Src:             'libfreerdp/core/license.c:558,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/license.c:560,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/license.c:564,9'
          Dst:             snprintf
        - Src:             'libfreerdp/core/license.c:569,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:569,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:570,2'
          Dst:             winpr_Digest_Free
    - functionName:    license_read_encrypted_blob
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2199
      functionLinenumberEnd: 2229
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          160
      EdgeCount:       46
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Pointer
        - Stream_SafeSeekEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - license_check_stream_length
        - license_rc4_with_licenseKey
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2203,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2204,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2206,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2209,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/license.c:2212,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:2212,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:2217,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/license.c:2219,24'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/license.c:2220,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/license.c:2222,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:2222,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/license.c:2222,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:2228,9'
          Dst:             license_rc4_with_licenseKey
    - functionName:    license_rc4_with_licenseKey
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1314
      functionLinenumberEnd: 1348
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          206
      EdgeCount:       62
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - realloc
        - winpr_RC4_Free
        - winpr_RC4_New_Allow_FIPS
        - winpr_RC4_Update
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1315,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1316,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1317,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1318,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1320,23'
          Dst:             winpr_RC4_New_Allow_FIPS
        - Src:             'libfreerdp/core/license.c:1324,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1324,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:1330,12'
          Dst:             realloc
        - Src:             'libfreerdp/core/license.c:1337,7'
          Dst:             winpr_RC4_Update
        - Src:             'libfreerdp/core/license.c:1340,2'
          Dst:             winpr_RC4_Free
        - Src:             'libfreerdp/core/license.c:1344,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1344,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:1346,2'
          Dst:             winpr_RC4_Free
    - functionName:    license_write_client_platform_challenge_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2784
      functionLinenumberEnd: 2796
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          78
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write
        - license_check_stream_capacity
        - license_write_binary_blob
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2785,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2787,7'
          Dst:             license_write_binary_blob
        - Src:             'libfreerdp/core/license.c:2789,7'
          Dst:             license_write_binary_blob
        - Src:             'libfreerdp/core/license.c:2791,7'
          Dst:             license_check_stream_capacity
        - Src:             'libfreerdp/core/license.c:2794,2'
          Dst:             Stream_Write
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:1325,3'
          Dst:             winpr_int_assert
    - functionName:    license_decrypt_and_check_MAC
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1385
      functionLinenumberEnd: 1410
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          155
      EdgeCount:       44
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_get_bool
        - license_rc4_with_licenseKey
        - memcmp
        - security_mac_data
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1388,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1389,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1391,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/license.c:1393,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1393,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:1397,7'
          Dst:             license_rc4_with_licenseKey
        - Src:             'libfreerdp/core/license.c:1400,7'
          Dst:             security_mac_data
        - Src:             'libfreerdp/core/license.c:1404,6'
          Dst:             memcmp
        - Src:             'libfreerdp/core/license.c:1406,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1406,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    Stream_Seek_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1207
      functionLinenumberEnd: 1209
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1208,3'
          Dst:             Stream_Seek
    - functionName:    license_write_encrypted_premaster_secret_blob
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1653
      functionLinenumberEnd: 1675
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          205
      EdgeCount:       62
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Zero
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1656,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1657,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1661,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1661,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:1665,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/license.c:1667,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1667,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1667,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/license.c:1668,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1668,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1668,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/license.c:1671,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/license.c:1673,2'
          Dst:             Stream_Zero
    - 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:    license_write_new_license_request_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2434
      functionLinenumberEnd: 2479
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         56
      ICount:          207
      EdgeCount:       62
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_certificate_get_info
        - license_check_stream_capacity
        - license_write_binary_blob
        - license_write_encrypted_premaster_secret_blob
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2435,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2437,28'
          Dst:             freerdp_certificate_get_info
        - Src:             'libfreerdp/core/license.c:2441,7'
          Dst:             license_check_stream_capacity
        - Src:             'libfreerdp/core/license.c:2445,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2445,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2445,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/license.c:2447,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2447,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2447,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/license.c:2448,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/license.c:2452,7'
          Dst:             license_write_encrypted_premaster_secret_blob
        - Src:             'libfreerdp/core/license.c:2455,7'
          Dst:             license_write_binary_blob
        - Src:             'libfreerdp/core/license.c:2457,7'
          Dst:             license_write_binary_blob
        - Src:             'libfreerdp/core/license.c:2462,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:2462,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    license_send_license_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1850
      functionLinenumberEnd: 1898
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          248
      EdgeCount:       72
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_Release
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - freerdp_certificate_get_info
        - license_check_stream_capacity
        - license_send
        - license_send_stream_init
        - license_write_binary_blob
        - license_write_encrypted_premaster_secret_blob
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1851,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1852,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1853,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1855,28'
          Dst:             freerdp_certificate_get_info
        - Src:             'libfreerdp/core/license.c:1860,15'
          Dst:             license_send_stream_init
        - Src:             'libfreerdp/core/license.c:1864,7'
          Dst:             license_check_stream_capacity
        - Src:             'libfreerdp/core/license.c:1868,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1868,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1868,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/license.c:1870,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1870,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1870,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/license.c:1873,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/license.c:1876,7'
          Dst:             license_write_encrypted_premaster_secret_blob
        - Src:             'libfreerdp/core/license.c:1881,7'
          Dst:             license_write_binary_blob
        - Src:             'libfreerdp/core/license.c:1885,7'
          Dst:             license_write_binary_blob
        - Src:             'libfreerdp/core/license.c:1889,7'
          Dst:             license_check_stream_capacity
        - Src:             'libfreerdp/core/license.c:1891,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/license.c:1893,9'
          Dst:             license_send
        - Src:             'libfreerdp/core/license.c:1896,2'
          Dst:             Stream_Release
    - functionName:    license_encrypt_and_MAC
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1364
      functionLinenumberEnd: 1368
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - license_rc4_with_licenseKey
        - security_mac_data
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1365,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1366,9'
          Dst:             license_rc4_with_licenseKey
        - Src:             'libfreerdp/core/license.c:1367,9'
          Dst:             security_mac_data
    - functionName:    loadCalFile
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 672
      functionLinenumberEnd: 737
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          218
      EdgeCount:       61
      CyclomaticComplexity: 12
      functionsReached:
        - GetCombinedPath
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - _fseeki64
        - _ftelli64
        - computeCalHash
        - fclose
        - fread
        - freerdp_settings_get_string
        - snprintf
        - winpr_fopen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:682,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:683,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:684,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:686,7'
          Dst:             computeCalHash
        - Src:             'libfreerdp/core/license.c:688,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:688,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:692,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/license.c:695,12'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/license.c:694,27'
          Dst:             GetCombinedPath
        - Src:             'libfreerdp/core/license.c:698,18'
          Dst:             GetCombinedPath
        - Src:             'libfreerdp/core/license.c:701,7'
          Dst:             winpr_fopen
        - Src:             'libfreerdp/core/license.c:705,6'
          Dst:             _fseeki64
        - Src:             'libfreerdp/core/license.c:707,11'
          Dst:             _ftelli64
        - Src:             'libfreerdp/core/license.c:708,6'
          Dst:             _fseeki64
        - Src:             'libfreerdp/core/license.c:717,11'
          Dst:             fread
        - Src:             'libfreerdp/core/license.c:723,8'
          Dst:             fclose
        - Src:             'libfreerdp/core/license.c:731,2'
          Dst:             fclose
    - functionName:    license_get_server_rsa_public_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1237
      functionLinenumberEnd: 1255
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          113
      EdgeCount:       35
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_certificate_read_server_cert
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1240,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1241,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1242,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1245,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1249,8'
          Dst:             freerdp_certificate_read_server_cert
    - functionName:    license_encrypt_premaster_secret
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1258
      functionLinenumberEnd: 1309
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         54
      ICount:          233
      EdgeCount:       62
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - calloc
        - crypto_rsa_public_encrypt
        - freerdp_certificate_get_info
        - license_get_server_rsa_public_key
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1259,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1260,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1262,7'
          Dst:             license_get_server_rsa_public_key
        - Src:             'libfreerdp/core/license.c:1265,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1267,28'
          Dst:             freerdp_certificate_get_info
        - Src:             'libfreerdp/core/license.c:1270,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1270,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:1282,42'
          Dst:             calloc
        - Src:             'libfreerdp/core/license.c:1285,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1285,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:1296,7'
          Dst:             crypto_rsa_public_encrypt
        - Src:             'libfreerdp/core/license.c:1300,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1300,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    license_generate_hwid
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1197
      functionLinenumberEnd: 1231
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          160
      EdgeCount:       43
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_StaticInit
        - Stream_Write_UINT32_unchecked
        - strlen
        - winpr_Digest_Allow_FIPS
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1202,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1203,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1204,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1217,16'
          Dst:             Stream_StaticInit
        - Src:             'libfreerdp/core/license.c:1218,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1218,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1218,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/license.c:1221,26'
          Dst:             strlen
        - Src:             'libfreerdp/core/license.c:1230,9'
          Dst:             winpr_Digest_Allow_FIPS
    - functionName:    license_generate_keys
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1137
      functionLinenumberEnd: 1189
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          131
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - security_licensing_encryption_key
        - security_mac_salt_key
        - security_master_secret
        - security_session_key_blob
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1138,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1142,7'
          Dst:             security_master_secret
        - Src:             'libfreerdp/core/license.c:1147,7'
          Dst:             security_session_key_blob
        - Src:             'libfreerdp/core/license.c:1154,2'
          Dst:             security_mac_salt_key
        - Src:             'libfreerdp/core/license.c:1158,19'
          Dst:             security_licensing_encryption_key
        - Src:             'libfreerdp/core/license.c:1164,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1164,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    license_read_scope_list
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1725
      functionLinenumberEnd: 1748
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          113
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - license_check_stream_length
        - license_read_binary_blob
        - license_scope_list_resize
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1728,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1730,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:1733,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/license.c:1735,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:1738,7'
          Dst:             license_scope_list_resize
        - Src:             'libfreerdp/core/license.c:1743,8'
          Dst:             license_read_binary_blob
    - functionName:    license_scope_list_resize
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1807
      functionLinenumberEnd: 1831
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          104
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - license_new_binary_blob
        - license_scope_list_free
        - realloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1808,2'
          Dst:             license_scope_list_free
        - Src:             'libfreerdp/core/license.c:1812,23'
          Dst:             realloc
        - Src:             'libfreerdp/core/license.c:1820,24'
          Dst:             license_new_binary_blob
    - functionName:    license_new_binary_blob
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1695
      functionLinenumberEnd: 1699
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1696,38'
          Dst:             calloc
    - functionName:    license_read_product_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1420
      functionLinenumberEnd: 1475
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          273
      EdgeCount:       65
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_Read
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - license_check_stream_length
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1421,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1423,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:1426,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/license.c:1427,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/license.c:1432,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1432,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:1437,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:1445,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/license.c:1447,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:1450,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/license.c:1454,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1454,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:1459,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:1466,2'
          Dst:             Stream_Read
    - 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:    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:    license_read_error_alert_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2378
      functionLinenumberEnd: 2424
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          132
      EdgeCount:       34
      CyclomaticComplexity: 4
      functionsReached:
        - license_check_stream_length
        - license_read_binary_blob
        - license_set_state
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/license.c:2406,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2383,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2385,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2388,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/license.c:2389,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/license.c:2391,7'
          Dst:             license_read_binary_blob
        - Src:             'libfreerdp/core/license.c:2402,3'
          Dst:             license_set_state
        - Src:             'libfreerdp/core/license.c:2409,4'
          Dst:             license_set_state
        - Src:             'libfreerdp/core/license.c:2412,4'
          Dst:             license_set_state
        - Src:             'libfreerdp/core/license.c:2415,4'
          Dst:             license_set_state
    - functionName:    license_set_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2946
      functionLinenumberEnd: 2958
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          51
      EdgeCount:       27
      CyclomaticComplexity: 15
      functionsReached:
        - winpr_int_assert
      functionUses:    15
      BranchProfiles:
        - Branch String:   'libfreerdp/core/license.c:2949,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2947,2'
          Dst:             winpr_int_assert
    - functionName:    license_read_new_or_upgrade_license_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2239
      functionLinenumberEnd: 2368
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         84
      ICount:          434
      EdgeCount:       103
      CyclomaticComplexity: 21
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Pointer
        - Stream_SafeSeekEx
        - Stream_Seek
        - Stream_StaticConstInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - license_check_stream_length
        - license_free_binary_blob
        - license_new_binary_blob
        - license_read_encrypted_blob
        - license_set_state
        - memcmp
        - saveCal
        - security_mac_data
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2252,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2256,26'
          Dst:             license_new_binary_blob
        - Src:             'libfreerdp/core/license.c:2261,7'
          Dst:             license_read_encrypted_blob
        - Src:             'libfreerdp/core/license.c:2265,12'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/license.c:2266,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/license.c:2268,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:2268,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/license.c:2268,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:2274,7'
          Dst:             security_mac_data
        - Src:             'libfreerdp/core/license.c:2278,6'
          Dst:             memcmp
        - Src:             'libfreerdp/core/license.c:2280,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:2280,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:2284,18'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/core/license.c:2287,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:2287,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:2293,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2297,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/license.c:2298,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/license.c:2300,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:2300,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:2303,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/license.c:2304,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2312,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/license.c:2315,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2319,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/license.c:2320,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2328,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/license.c:2331,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2335,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/license.c:2337,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2345,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/license.c:2348,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2352,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/license.c:2353,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2358,2'
          Dst:             license_set_state
        - Src:             'libfreerdp/core/license.c:2362,55'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/license.c:2362,9'
          Dst:             saveCal
        - Src:             'libfreerdp/core/license.c:2366,2'
          Dst:             license_free_binary_blob
    - functionName:    license_send_platform_challenge_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2636
      functionLinenumberEnd: 2719
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         102
      ICount:          399
      EdgeCount:       109
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_Buffer
        - Stream_Free
        - Stream_Length
        - Stream_New
        - Stream_Release
        - Stream_SealLength
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - license_rc4_with_licenseKey
        - license_send
        - license_send_stream_init
        - license_write_client_platform_challenge_response
        - security_mac_data
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2641,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2642,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2643,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2644,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2645,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2652,22'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/license.c:2655,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/license.c:2656,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2656,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2656,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/license.c:2657,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2657,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2657,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/license.c:2658,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2658,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2658,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/license.c:2659,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/license.c:2661,2'
          Dst:             Stream_SealLength
        - Src:             'libfreerdp/core/license.c:2664,24'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/license.c:2668,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/license.c:2672,2'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/license.c:2672,2'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/license.c:2673,2'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/license.c:2675,11'
          Dst:             security_mac_data
        - Src:             'libfreerdp/core/license.c:2681,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/license.c:2686,7'
          Dst:             license_rc4_with_licenseKey
        - Src:             'libfreerdp/core/license.c:2689,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/license.c:2693,48'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/license.c:2694,39'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/license.c:2693,11'
          Dst:             license_rc4_with_licenseKey
        - Src:             'libfreerdp/core/license.c:2696,2'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/license.c:2710,15'
          Dst:             license_send_stream_init
        - Src:             'libfreerdp/core/license.c:2714,6'
          Dst:             license_write_client_platform_challenge_response
        - Src:             'libfreerdp/core/license.c:2715,10'
          Dst:             license_send
        - Src:             'libfreerdp/core/license.c:2717,2'
          Dst:             Stream_Release
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    license_read_platform_challenge_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2093
      functionLinenumberEnd: 2137
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          143
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_Read
        - Stream_Seek_UINT32
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - license_check_stream_length
        - license_decrypt_and_check_MAC
        - license_read_binary_blob
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2096,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2100,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2105,2'
          Dst:             Stream_Seek_UINT32
        - Src:             'libfreerdp/core/license.c:2109,7'
          Dst:             license_read_binary_blob
        - Src:             'libfreerdp/core/license.c:2114,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2118,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/license.c:2119,7'
          Dst:             license_decrypt_and_check_MAC
        - Src:             'libfreerdp/core/license.c:2124,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:2124,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    license_answer_license_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2535
      functionLinenumberEnd: 2627
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         90
      ICount:          411
      EdgeCount:       97
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_Release
        - license_encrypt_and_MAC
        - license_free_binary_blob
        - license_new_binary_blob
        - license_send
        - license_send_license_info
        - license_send_stream_init
        - license_write_new_license_request_packet
        - loadCalFile
        - strlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2543,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2544,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2545,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2548,18'
          Dst:             loadCalFile
        - Src:             'libfreerdp/core/license.c:2558,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2560,8'
          Dst:             license_encrypt_and_MAC
        - Src:             'libfreerdp/core/license.c:2567,13'
          Dst:             license_new_binary_blob
        - Src:             'libfreerdp/core/license.c:2574,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2577,12'
          Dst:             license_send_license_info
        - Src:             'libfreerdp/core/license.c:2578,3'
          Dst:             license_free_binary_blob
        - Src:             'libfreerdp/core/license.c:2585,6'
          Dst:             license_send_stream_init
        - Src:             'libfreerdp/core/license.c:2594,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2595,22'
          Dst:             strlen
        - Src:             'libfreerdp/core/license.c:2596,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2603,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2604,22'
          Dst:             strlen
        - Src:             'libfreerdp/core/license.c:2605,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2610,11'
          Dst:             license_write_new_license_request_packet
        - Src:             'libfreerdp/core/license.c:2612,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2616,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2622,3'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/license.c:2626,9'
          Dst:             license_send
    - functionName:    license_read_license_request_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1992
      functionLinenumberEnd: 2036
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          168
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_Read
        - freerdp_certificate_read_server_cert
        - license_check_stream_length
        - license_encrypt_premaster_secret
        - license_generate_hwid
        - license_generate_keys
        - license_read_binary_blob
        - license_read_product_info
        - license_read_scope_list
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1993,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1996,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:2000,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/license.c:2003,7'
          Dst:             license_read_product_info
        - Src:             'libfreerdp/core/license.c:2007,7'
          Dst:             license_read_binary_blob
        - Src:             'libfreerdp/core/license.c:2011,7'
          Dst:             license_read_binary_blob
        - Src:             'libfreerdp/core/license.c:2015,7'
          Dst:             license_read_scope_list
        - Src:             'libfreerdp/core/license.c:2019,7'
          Dst:             freerdp_certificate_read_server_cert
        - Src:             'libfreerdp/core/license.c:2024,7'
          Dst:             license_generate_keys
        - Src:             'libfreerdp/core/license.c:2024,42'
          Dst:             license_generate_hwid
        - Src:             'libfreerdp/core/license.c:2025,7'
          Dst:             license_encrypt_premaster_secret
    - functionName:    license_read_preamble
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 751
      functionLinenumberEnd: 764
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          100
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - license_check_stream_length
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:752,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:753,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:754,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:757,7'
          Dst:             license_check_stream_length
        - Src:             'libfreerdp/core/license.c:760,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/license.c:761,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/license.c:762,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/license.c:763,9'
          Dst:             license_check_stream_length
    - functionName:    license_client_recv_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 928
      functionLinenumberEnd: 994
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         52
      ICount:          251
      EdgeCount:       64
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - license_answer_license_request
        - license_ensure_state
        - license_get_state
        - license_read_error_alert_packet
        - license_read_license_request_packet
        - license_read_new_or_upgrade_license_packet
        - license_read_platform_challenge_packet
        - license_read_preamble
        - license_send_platform_challenge_response
        - license_set_state
        - tpkt_ensure_stream_consumed_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/license.c:942,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/license.c:932,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/license.c:934,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:936,7'
          Dst:             license_read_preamble
        - Src:             'libfreerdp/core/license.c:946,8'
          Dst:             license_get_state
        - Src:             'libfreerdp/core/license.c:947,5'
          Dst:             license_set_state
        - Src:             'libfreerdp/core/license.c:949,9'
          Dst:             license_ensure_state
        - Src:             'libfreerdp/core/license.c:952,9'
          Dst:             license_read_license_request_packet
        - Src:             'libfreerdp/core/license.c:955,9'
          Dst:             license_answer_license_request
        - Src:             'libfreerdp/core/license.c:958,4'
          Dst:             license_set_state
        - Src:             'libfreerdp/core/license.c:962,9'
          Dst:             license_ensure_state
        - Src:             'libfreerdp/core/license.c:965,9'
          Dst:             license_read_platform_challenge_packet
        - Src:             'libfreerdp/core/license.c:968,9'
          Dst:             license_send_platform_challenge_response
        - Src:             'libfreerdp/core/license.c:970,4'
          Dst:             license_set_state
        - Src:             'libfreerdp/core/license.c:975,9'
          Dst:             license_ensure_state
        - Src:             'libfreerdp/core/license.c:977,9'
          Dst:             license_read_new_or_upgrade_license_packet
        - Src:             'libfreerdp/core/license.c:982,9'
          Dst:             license_read_error_alert_packet
        - Src:             'libfreerdp/core/license.c:987,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:987,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:991,7'
          Dst:             tpkt_ensure_stream_consumed_
    - functionName:    license_get_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2934
      functionLinenumberEnd: 2936
      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:             'libfreerdp/core/license.c:2935,2'
          Dst:             winpr_int_assert
    - functionName:    license_ensure_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          88
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - license_get_state
        - license_get_state_string
        - license_request_type_string
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:480,31'
          Dst:             license_get_state
        - Src:             'libfreerdp/core/license.c:482,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:486,25'
          Dst:             license_get_state_string
        - Src:             'libfreerdp/core/license.c:487,24'
          Dst:             license_get_state_string
        - Src:             'libfreerdp/core/license.c:488,23'
          Dst:             license_request_type_string
        - Src:             'libfreerdp/core/license.c:490,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:490,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    license_get
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3114
      functionLinenumberEnd: 3117
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          47
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:3115,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:3116,2'
          Dst:             winpr_int_assert
    - functionName:    license_set_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2998
      functionLinenumberEnd: 3021
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          134
      EdgeCount:       43
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2999,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:3000,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:3001,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:3002,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:3012,11'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/core/license.c:3015,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:3015,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    license_server_configure
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3024
      functionLinenumberEnd: 3111
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         81
      ICount:          410
      EdgeCount:       96
      CyclomaticComplexity: 17
      functionsReached:
        - Stream_Buffer
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_certificate_read_server_cert
        - freerdp_certificate_write_server_cert
        - freerdp_settings_get_pointer
        - freerdp_settings_get_string
        - freerdp_settings_get_uint32
        - license_ensure_state
        - license_read_binary_blob_data
        - license_scope_list_resize
        - license_set_state
        - license_set_string
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:3028,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:3029,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:3034,6'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/license.c:3037,6'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/license.c:3039,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/license.c:3041,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/license.c:3043,20'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/core/license.c:3046,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:3047,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:3048,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:3049,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:3051,7'
          Dst:             license_ensure_state
        - Src:             'libfreerdp/core/license.c:3055,7'
          Dst:             license_set_string
        - Src:             'libfreerdp/core/license.c:3060,7'
          Dst:             license_set_string
        - Src:             'libfreerdp/core/license.c:3064,7'
          Dst:             license_read_binary_blob_data
        - Src:             'libfreerdp/core/license.c:3068,7'
          Dst:             freerdp_certificate_read_server_cert
        - Src:             'libfreerdp/core/license.c:3072,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/license.c:3079,7'
          Dst:             freerdp_certificate_write_server_cert
        - Src:             'libfreerdp/core/license.c:3082,59'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/license.c:3083,38'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/license.c:3081,8'
          Dst:             license_read_binary_blob_data
        - Src:             'libfreerdp/core/license.c:3085,3'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/license.c:3090,7'
          Dst:             license_scope_list_resize
        - Src:             'libfreerdp/core/license.c:3096,25'
          Dst:             strnlen
        - Src:             'libfreerdp/core/license.c:3099,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:3099,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:3105,8'
          Dst:             license_read_binary_blob_data
        - Src:             'libfreerdp/core/license.c:3109,2'
          Dst:             license_set_state
    - functionName:    license_send_license_request_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2069
      functionLinenumberEnd: 2083
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Release
        - license_send
        - license_send_stream_init
        - license_write_license_request_packet
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2071,15'
          Dst:             license_send_stream_init
        - Src:             'libfreerdp/core/license.c:2075,7'
          Dst:             license_write_license_request_packet
        - Src:             'libfreerdp/core/license.c:2078,9'
          Dst:             license_send
        - Src:             'libfreerdp/core/license.c:2081,2'
          Dst:             Stream_Release
    - functionName:    license_server_send_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2986
      functionLinenumberEnd: 2993
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - license_ensure_state
        - license_send_license_request_packet
        - license_set_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2987,7'
          Dst:             license_ensure_state
        - Src:             'libfreerdp/core/license.c:2989,7'
          Dst:             license_send_license_request_packet
        - Src:             'libfreerdp/core/license.c:2991,2'
          Dst:             license_set_state
    - functionName:    license_get_type
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2940
      functionLinenumberEnd: 2942
      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:             'libfreerdp/core/license.c:2941,2'
          Dst:             winpr_int_assert
    - functionName:    license_free_scope_list
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1840
      functionLinenumberEnd: 1846
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - license_scope_list_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1844,2'
          Dst:             license_scope_list_free
    - functionName:    license_free_product_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1547
      functionLinenumberEnd: 1554
      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:    license_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2910
      functionLinenumberEnd: 2931
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          90
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_certificate_free
        - license_free_binary_blob
        - license_free_product_info
        - license_free_scope_list
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2913,3'
          Dst:             freerdp_certificate_free
        - Src:             'libfreerdp/core/license.c:2914,3'
          Dst:             license_free_product_info
        - Src:             'libfreerdp/core/license.c:2915,3'
          Dst:             license_free_binary_blob
        - Src:             'libfreerdp/core/license.c:2916,3'
          Dst:             license_free_binary_blob
        - Src:             'libfreerdp/core/license.c:2917,3'
          Dst:             license_free_binary_blob
        - Src:             'libfreerdp/core/license.c:2918,3'
          Dst:             license_free_binary_blob
        - Src:             'libfreerdp/core/license.c:2919,3'
          Dst:             license_free_binary_blob
        - Src:             'libfreerdp/core/license.c:2920,3'
          Dst:             license_free_binary_blob
        - Src:             'libfreerdp/core/license.c:2921,3'
          Dst:             license_free_binary_blob
        - Src:             'libfreerdp/core/license.c:2922,3'
          Dst:             license_free_binary_blob
        - Src:             'libfreerdp/core/license.c:2923,3'
          Dst:             license_free_binary_blob
        - Src:             'libfreerdp/core/license.c:2924,3'
          Dst:             license_free_binary_blob
        - Src:             'libfreerdp/core/license.c:2925,3'
          Dst:             license_free_binary_blob
        - Src:             'libfreerdp/core/license.c:2926,3'
          Dst:             license_free_binary_blob
        - Src:             'libfreerdp/core/license.c:2927,3'
          Dst:             license_free_binary_blob
        - Src:             'libfreerdp/core/license.c:2928,3'
          Dst:             license_free_scope_list
    - functionName:    license_generate_randoms
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1108
      functionLinenumberEnd: 1129
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_RAND
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1109,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1114,6'
          Dst:             winpr_RAND
        - Src:             'libfreerdp/core/license.c:1118,6'
          Dst:             winpr_RAND
        - Src:             'libfreerdp/core/license.c:1124,6'
          Dst:             winpr_RAND
    - functionName:    license_new_scope_list
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1783
      functionLinenumberEnd: 1785
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1784,21'
          Dst:             calloc
    - functionName:    license_new_product_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1532
      functionLinenumberEnd: 1538
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1534,29'
          Dst:             calloc
    - functionName:    license_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2841
      functionLinenumberEnd: 2902
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         53
      ICount:          253
      EdgeCount:       71
      CyclomaticComplexity: 20
      functionsReached:
        - WLog_Get
        - calloc
        - freerdp_certificate_new
        - license_free
        - license_generate_randoms
        - license_new_binary_blob
        - license_new_product_info
        - license_new_scope_list
        - license_set_state
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2842,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2844,37'
          Dst:             calloc
        - Src:             'libfreerdp/core/license.c:2847,17'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/license.c:2848,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2856,2'
          Dst:             license_set_state
        - Src:             'libfreerdp/core/license.c:2857,31'
          Dst:             freerdp_certificate_new
        - Src:             'libfreerdp/core/license.c:2859,31'
          Dst:             license_new_product_info
        - Src:             'libfreerdp/core/license.c:2861,29'
          Dst:             license_new_binary_blob
        - Src:             'libfreerdp/core/license.c:2863,31'
          Dst:             license_new_binary_blob
        - Src:             'libfreerdp/core/license.c:2865,35'
          Dst:             license_new_binary_blob
        - Src:             'libfreerdp/core/license.c:2867,37'
          Dst:             license_new_binary_blob
        - Src:             'libfreerdp/core/license.c:2869,34'
          Dst:             license_new_binary_blob
        - Src:             'libfreerdp/core/license.c:2871,37'
          Dst:             license_new_binary_blob
        - Src:             'libfreerdp/core/license.c:2873,37'
          Dst:             license_new_binary_blob
        - Src:             'libfreerdp/core/license.c:2875,45'
          Dst:             license_new_binary_blob
        - Src:             'libfreerdp/core/license.c:2877,46'
          Dst:             license_new_binary_blob
        - Src:             'libfreerdp/core/license.c:2880,12'
          Dst:             license_new_binary_blob
        - Src:             'libfreerdp/core/license.c:2882,44'
          Dst:             license_new_binary_blob
        - Src:             'libfreerdp/core/license.c:2884,39'
          Dst:             license_new_binary_blob
        - Src:             'libfreerdp/core/license.c:2886,40'
          Dst:             license_new_binary_blob
        - Src:             'libfreerdp/core/license.c:2888,29'
          Dst:             license_new_scope_list
        - Src:             'libfreerdp/core/license.c:2891,7'
          Dst:             license_generate_randoms
        - Src:             'libfreerdp/core/license.c:2899,2'
          Dst:             license_free
    - functionName:    license_send_error_alert
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2141
      functionLinenumberEnd: 2163
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          139
      EdgeCount:       46
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Release
        - Stream_Write_UINT32_unchecked
        - license_check_stream_capacity
        - license_send
        - license_send_stream_init
        - license_write_binary_blob
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2143,15'
          Dst:             license_send_stream_init
        - Src:             'libfreerdp/core/license.c:2148,7'
          Dst:             license_check_stream_capacity
        - Src:             'libfreerdp/core/license.c:2150,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2150,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2150,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/license.c:2151,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2151,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2151,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/license.c:2155,8'
          Dst:             license_write_binary_blob
        - Src:             'libfreerdp/core/license.c:2159,9'
          Dst:             license_send
        - Src:             'libfreerdp/core/license.c:2161,2'
          Dst:             Stream_Release
    - functionName:    license_send_valid_client_error_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2823
      functionLinenumberEnd: 2831
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          56
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - license_send_error_alert
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:2824,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2826,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:2830,9'
          Dst:             license_send_error_alert
    - functionName:    license_client_recv
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 997
      functionLinenumberEnd: 1003
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_set_last_error_ex
        - license_client_recv_int
        - state_run_failed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:998,19'
          Dst:             license_client_recv_int
        - Src:             'libfreerdp/core/license.c:999,6'
          Dst:             state_run_failed
        - Src:             'libfreerdp/core/license.c:1001,3'
          Dst:             freerdp_set_last_error_ex
    - functionName:    license_server_recv
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1007
      functionLinenumberEnd: 1104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         70
      ICount:          322
      EdgeCount:       88
      CyclomaticComplexity: 20
      functionsReached:
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - license_ensure_state
        - license_read_client_platform_challenge_response
        - license_read_error_alert_packet
        - license_read_license_info
        - license_read_new_license_request_packet
        - license_read_preamble
        - license_send_error_alert
        - license_send_platform_challenge_packet
        - license_server_send_new_or_upgrade_license
        - license_set_state
        - state_run_failed
        - state_run_success
        - tpkt_ensure_stream_consumed_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/license.c:1022,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/license.c:1012,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/license.c:1014,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:1016,7'
          Dst:             license_read_preamble
        - Src:             'libfreerdp/core/license.c:1025,9'
          Dst:             license_ensure_state
        - Src:             'libfreerdp/core/license.c:1027,9'
          Dst:             license_read_new_license_request_packet
        - Src:             'libfreerdp/core/license.c:1030,9'
          Dst:             license_send_error_alert
        - Src:             'libfreerdp/core/license.c:1033,9'
          Dst:             license_send_platform_challenge_packet
        - Src:             'libfreerdp/core/license.c:1036,4'
          Dst:             license_set_state
        - Src:             'libfreerdp/core/license.c:1039,9'
          Dst:             license_ensure_state
        - Src:             'libfreerdp/core/license.c:1041,9'
          Dst:             license_read_license_info
        - Src:             'libfreerdp/core/license.c:1044,9'
          Dst:             license_send_platform_challenge_packet
        - Src:             'libfreerdp/core/license.c:1046,4'
          Dst:             license_set_state
        - Src:             'libfreerdp/core/license.c:1051,9'
          Dst:             license_ensure_state
        - Src:             'libfreerdp/core/license.c:1053,9'
          Dst:             license_read_client_platform_challenge_response
        - Src:             'libfreerdp/core/license.c:1065,10'
          Dst:             license_server_send_new_or_upgrade_license
        - Src:             'libfreerdp/core/license.c:1069,5'
          Dst:             license_set_state
        - Src:             'libfreerdp/core/license.c:1076,9'
          Dst:             license_read_error_alert_packet
        - Src:             'libfreerdp/core/license.c:1081,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1081,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:1085,7'
          Dst:             tpkt_ensure_stream_consumed_
        - Src:             'libfreerdp/core/license.c:1088,7'
          Dst:             state_run_success
        - Src:             'libfreerdp/core/license.c:1092,6'
          Dst:             state_run_failed
        - Src:             'libfreerdp/core/license.c:1096,9'
          Dst:             license_send_error_alert
        - Src:             'libfreerdp/core/license.c:1098,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/license.c:1098,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/license.c:1101,3'
          Dst:             license_set_state
    - functionName:    license_recv
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/license.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          84
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_get_bool
        - license_client_recv
        - license_server_recv
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/license.c:500,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:501,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:502,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/license.c:504,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/license.c:505,10'
          Dst:             license_server_recv
        - Src:             'libfreerdp/core/license.c:507,10'
          Dst:             license_client_recv
    - 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:    rdp_print_errinfo
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/errinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 682
      functionLinenumberEnd: 698
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/errinfo.c:690,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/errinfo.c:697,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_get_error_info_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/errinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_get_error_info_category
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/errinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 646
      functionLinenumberEnd: 661
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_get_error_info_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/errinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 628
      functionLinenumberEnd: 643
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_get_error_base_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/errbase.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_get_error_base_category
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/errbase.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_get_error_base_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/errbase.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_get_error_connect_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/errconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_get_error_connect_category
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/errconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_get_error_connect_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/errconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    security_salted_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          220
      EdgeCount:       64
      CyclomaticComplexity: 14
      functionsReached:
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_Init_Allow_FIPS
        - winpr_Digest_New
        - winpr_Digest_Update
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:96,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:99,15'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/security.c:102,7'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/security.c:105,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:108,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:109,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:112,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:113,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:116,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:117,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:120,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/security.c:124,14'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/security.c:132,7'
          Dst:             winpr_Digest_Init_Allow_FIPS
        - Src:             'libfreerdp/core/security.c:135,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:138,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:141,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/security.c:146,2'
          Dst:             winpr_Digest_Free
        - Src:             'libfreerdp/core/security.c:147,2'
          Dst:             winpr_Digest_Free
    - functionName:    security_fips_check_signature
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 969
      functionLinenumberEnd: 999
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          127
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Print_dbg_tag
        - memcmp
        - security_UINT32_le
        - winpr_HMAC_Final
        - winpr_HMAC_Free
        - winpr_HMAC_Init
        - winpr_HMAC_New
        - winpr_HMAC_Update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:975,2'
          Dst:             security_UINT32_le
        - Src:             'libfreerdp/core/security.c:977,15'
          Dst:             winpr_HMAC_New
        - Src:             'libfreerdp/core/security.c:980,7'
          Dst:             winpr_HMAC_Init
        - Src:             'libfreerdp/core/security.c:983,7'
          Dst:             winpr_HMAC_Update
        - Src:             'libfreerdp/core/security.c:986,7'
          Dst:             winpr_HMAC_Update
        - Src:             'libfreerdp/core/security.c:989,7'
          Dst:             winpr_HMAC_Final
        - Src:             'libfreerdp/core/security.c:992,25'
          Dst:             memcmp
        - Src:             'libfreerdp/core/security.c:997,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/security.c:998,2'
          Dst:             winpr_HMAC_Free
    - functionName:    security_UINT32_le
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:295,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:296,2'
          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:    security_fips_decrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 951
      functionLinenumberEnd: 965
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          76
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Cipher_Update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:956,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/security.c:961,7'
          Dst:             winpr_Cipher_Update
    - functionName:    security_fips_encrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 937
      functionLinenumberEnd: 947
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_Cipher_Update
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:941,7'
          Dst:             winpr_Cipher_Update
    - functionName:    security_hmac_signature
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 901
      functionLinenumberEnd: 934
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          134
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - security_UINT32_le
        - winpr_HMAC_Final
        - winpr_HMAC_Free
        - winpr_HMAC_Init
        - winpr_HMAC_New
        - winpr_HMAC_Update
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:907,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:908,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:912,2'
          Dst:             security_UINT32_le
        - Src:             'libfreerdp/core/security.c:914,15'
          Dst:             winpr_HMAC_New
        - Src:             'libfreerdp/core/security.c:917,7'
          Dst:             winpr_HMAC_Init
        - Src:             'libfreerdp/core/security.c:920,7'
          Dst:             winpr_HMAC_Update
        - Src:             'libfreerdp/core/security.c:923,7'
          Dst:             winpr_HMAC_Update
        - Src:             'libfreerdp/core/security.c:926,7'
          Dst:             winpr_HMAC_Final
        - Src:             'libfreerdp/core/security.c:932,2'
          Dst:             winpr_HMAC_Free
    - functionName:    security_decrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 866
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          149
      EdgeCount:       40
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Print_dbg_tag
        - rdp_reset_rc4_decrypt_keys
        - security_key_update
        - winpr_RC4_Update
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:869,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:870,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:874,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/security.c:880,8'
          Dst:             security_key_update
        - Src:             'libfreerdp/core/security.c:883,8'
          Dst:             rdp_reset_rc4_decrypt_keys
        - Src:             'libfreerdp/core/security.c:887,7'
          Dst:             winpr_RC4_Update
        - Src:             'libfreerdp/core/security.c:895,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    security_key_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 771
      functionLinenumberEnd: 832
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          213
      EdgeCount:       54
      CyclomaticComplexity: 18
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_New
        - winpr_Digest_Update
        - winpr_RC4_Free
        - winpr_RC4_New
        - winpr_RC4_Update
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:778,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/security.c:780,15'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/security.c:783,7'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/security.c:786,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:789,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:792,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:795,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/security.c:798,14'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/security.c:801,7'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/security.c:804,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:807,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:810,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:813,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/security.c:816,14'
          Dst:             winpr_RC4_New
        - Src:             'libfreerdp/core/security.c:819,7'
          Dst:             winpr_RC4_Update
        - Src:             'libfreerdp/core/security.c:829,2'
          Dst:             winpr_Digest_Free
        - Src:             'libfreerdp/core/security.c:830,2'
          Dst:             winpr_Digest_Free
        - Src:             'libfreerdp/core/security.c:831,2'
          Dst:             winpr_RC4_Free
    - functionName:    security_encrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 836
      functionLinenumberEnd: 862
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          112
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - rdp_reset_rc4_encrypt_keys
        - security_key_update
        - winpr_RC4_Update
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:839,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:842,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/security.c:848,8'
          Dst:             security_key_update
        - Src:             'libfreerdp/core/security.c:851,8'
          Dst:             rdp_reset_rc4_encrypt_keys
        - Src:             'libfreerdp/core/security.c:855,7'
          Dst:             winpr_RC4_Update
    - functionName:    security_unlock
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1009
      functionLinenumberEnd: 1012
      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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:1010,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:1011,2'
          Dst:             LeaveCriticalSection
    - functionName:    security_lock
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1003
      functionLinenumberEnd: 1006
      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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:1004,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:1005,2'
          Dst:             EnterCriticalSection
    - functionName:    security_md5_16_32_32
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          109
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_New
        - winpr_Digest_Update
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:221,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:223,14'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/security.c:226,7'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/security.c:229,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:232,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:235,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:238,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/security.c:243,2'
          Dst:             winpr_Digest_Free
    - functionName:    security_X
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          100
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - security_premaster_hash
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:558,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:560,9'
          Dst:             security_premaster_hash
        - Src:             'libfreerdp/core/security.c:562,9'
          Dst:             security_premaster_hash
        - Src:             'libfreerdp/core/security.c:564,9'
          Dst:             security_premaster_hash
    - functionName:    security_premaster_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - security_salted_hash
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:157,9'
          Dst:             security_salted_hash
    - functionName:    security_A
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 547
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          91
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - security_premaster_hash
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:539,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:541,9'
          Dst:             security_premaster_hash
        - Src:             'libfreerdp/core/security.c:543,9'
          Dst:             security_premaster_hash
        - Src:             'libfreerdp/core/security.c:545,9'
          Dst:             security_premaster_hash
    - functionName:    fips_expand_key_bits
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          243
      EdgeCount:       58
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:574,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:575,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:577,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:578,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:591,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:598,4'
          Dst:             winpr_int_assert
    - functionName:    security_establish_keys
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 768
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         87
      ICount:          530
      EdgeCount:       111
      CyclomaticComplexity: 26
      functionsReached:
        - WLog_Print_dbg_tag
        - fips_expand_key_bits
        - freerdp_settings_get_pointer
        - freerdp_settings_get_uint32
        - security_A
        - security_X
        - security_lock
        - security_md5_16_32_32
        - security_md5_16_32_32_Allow_FIPS
        - security_unlock
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_New
        - winpr_Digest_Update
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:620,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:622,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:624,30'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/core/security.c:625,30'
          Dst:             freerdp_settings_get_pointer
        - Src:             'libfreerdp/core/security.c:626,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:627,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:630,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/security.c:632,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/security.c:639,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/security.c:648,28'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/security.c:652,8'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/security.c:653,8'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:654,8'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:655,8'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/security.c:657,4'
          Dst:             winpr_Digest_Free
        - Src:             'libfreerdp/core/security.c:663,8'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/security.c:664,8'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:665,8'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:666,8'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/security.c:668,4'
          Dst:             winpr_Digest_Free
        - Src:             'libfreerdp/core/security.c:674,8'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/security.c:675,8'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:676,8'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:677,8'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/security.c:679,4'
          Dst:             winpr_Digest_Free
        - Src:             'libfreerdp/core/security.c:683,3'
          Dst:             winpr_Digest_Free
        - Src:             'libfreerdp/core/security.c:687,4'
          Dst:             fips_expand_key_bits
        - Src:             'libfreerdp/core/security.c:689,4'
          Dst:             fips_expand_key_bits
        - Src:             'libfreerdp/core/security.c:694,4'
          Dst:             fips_expand_key_bits
        - Src:             'libfreerdp/core/security.c:696,4'
          Dst:             fips_expand_key_bits
        - Src:             'libfreerdp/core/security.c:704,7'
          Dst:             security_A
        - Src:             'libfreerdp/core/security.c:706,7'
          Dst:             security_X
        - Src:             'libfreerdp/core/security.c:716,12'
          Dst:             security_md5_16_32_32
        - Src:             'libfreerdp/core/security.c:718,13'
          Dst:             security_md5_16_32_32
        - Src:             'libfreerdp/core/security.c:729,7'
          Dst:             security_md5_16_32_32_Allow_FIPS
        - Src:             'libfreerdp/core/security.c:732,7'
          Dst:             security_md5_16_32_32_Allow_FIPS
        - Src:             'libfreerdp/core/security.c:758,2'
          Dst:             security_lock
        - Src:             'libfreerdp/core/security.c:766,2'
          Dst:             security_unlock
    - functionName:    security_md5_16_32_32_Allow_FIPS
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          109
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init_Allow_FIPS
        - winpr_Digest_New
        - winpr_Digest_Update
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:253,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:255,14'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/security.c:257,7'
          Dst:             winpr_Digest_Init_Allow_FIPS
        - Src:             'libfreerdp/core/security.c:259,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:261,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:263,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:265,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/security.c:270,2'
          Dst:             winpr_Digest_Free
    - functionName:    security_salted_mac_signature
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          307
      EdgeCount:       86
      CyclomaticComplexity: 20
      functionsReached:
        - WLog_Print_dbg_tag
        - security_UINT32_le
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_New
        - winpr_Digest_Update
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:457,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:458,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:459,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:460,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:464,2'
          Dst:             security_UINT32_le
        - Src:             'libfreerdp/core/security.c:468,3'
          Dst:             security_UINT32_le
        - Src:             'libfreerdp/core/security.c:476,3'
          Dst:             security_UINT32_le
        - Src:             'libfreerdp/core/security.c:481,15'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/security.c:484,7'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/security.c:487,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:490,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:493,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:496,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:499,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:502,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/security.c:506,14'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/security.c:509,7'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/security.c:512,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:515,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:518,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:521,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/security.c:528,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/security.c:530,2'
          Dst:             winpr_Digest_Free
        - Src:             'libfreerdp/core/security.c:531,2'
          Dst:             winpr_Digest_Free
    - functionName:    security_mac_signature
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         63
      ICount:          270
      EdgeCount:       79
      CyclomaticComplexity: 18
      functionsReached:
        - WLog_Print_dbg_tag
        - security_UINT32_le
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_New
        - winpr_Digest_Update
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:386,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:387,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:388,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:389,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:393,2'
          Dst:             security_UINT32_le
        - Src:             'libfreerdp/core/security.c:396,15'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/security.c:399,7'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/security.c:402,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:405,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:408,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:411,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:414,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/security.c:418,14'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/security.c:421,7'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/security.c:424,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:427,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:430,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:433,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/security.c:440,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/security.c:441,2'
          Dst:             winpr_Digest_Free
        - Src:             'libfreerdp/core/security.c:442,2'
          Dst:             winpr_Digest_Free
    - functionName:    security_mac_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          224
      EdgeCount:       65
      CyclomaticComplexity: 16
      functionsReached:
        - WLog_Print_dbg_tag
        - security_UINT32_le
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_Init_Allow_FIPS
        - winpr_Digest_New
        - winpr_Digest_Update
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:312,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:313,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:314,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:317,2'
          Dst:             security_UINT32_le
        - Src:             'libfreerdp/core/security.c:321,15'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/security.c:324,7'
          Dst:             winpr_Digest_Init
        - Src:             'libfreerdp/core/security.c:327,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:330,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:333,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:336,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:339,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/security.c:343,14'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/core/security.c:352,7'
          Dst:             winpr_Digest_Init_Allow_FIPS
        - Src:             'libfreerdp/core/security.c:355,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:358,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:361,7'
          Dst:             winpr_Digest_Update
        - Src:             'libfreerdp/core/security.c:364,7'
          Dst:             winpr_Digest_Final
        - Src:             'libfreerdp/core/security.c:370,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/security.c:371,2'
          Dst:             winpr_Digest_Free
        - Src:             'libfreerdp/core/security.c:372,2'
          Dst:             winpr_Digest_Free
    - functionName:    security_licensing_encryption_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          68
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - security_md5_16_32_32_Allow_FIPS
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:289,9'
          Dst:             security_md5_16_32_32_Allow_FIPS
    - functionName:    security_mac_salt_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      void
      argCount:        8
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          59
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:210,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:211,2'
          Dst:             winpr_int_assert
    - functionName:    security_master_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - security_salted_hash
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:183,9'
          Dst:             security_salted_hash
    - functionName:    security_session_key_blob
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          91
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - security_master_hash
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:193,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:194,9'
          Dst:             security_master_hash
        - Src:             'libfreerdp/core/security.c:196,9'
          Dst:             security_master_hash
        - Src:             'libfreerdp/core/security.c:198,9'
          Dst:             security_master_hash
    - functionName:    security_master_secret
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/security.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          94
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - security_premaster_hash
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/security.c:166,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/security.c:167,9'
          Dst:             security_premaster_hash
        - Src:             'libfreerdp/core/security.c:169,9'
          Dst:             security_premaster_hash
        - Src:             'libfreerdp/core/security.c:172,9'
          Dst:             security_premaster_hash
    - functionName:    read_order_field_2bytes
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1180
      functionLinenumberEnd: 1197
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          120
      EdgeCount:       38
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - order_field_flag_is_set
        - stream_read_u8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1181,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1182,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1183,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1184,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1186,7'
          Dst:             order_field_flag_is_set
        - Src:             'libfreerdp/core/orders.c:1188,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:1192,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1194,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:1195,2'
          Dst:             stream_read_u8
    - functionName:    order_field_flag_is_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1152
      functionLinenumberEnd: 1155
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          27
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      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:    77
      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:    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:    69
      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_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:    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:    13
      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_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,3'
          Dst:             winpr_int_assert
    - functionName:    read_order_field_int16
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1222
      functionLinenumberEnd: 1239
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          99
      EdgeCount:       30
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - order_field_flag_is_set
        - stream_read_i16_le
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1223,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1224,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1225,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1227,7'
          Dst:             order_field_flag_is_set
        - Src:             'libfreerdp/core/orders.c:1229,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:1234,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1237,2'
          Dst:             stream_read_i16_le
    - functionName:    stream_read_i16_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 228
      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_INT16
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:222,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:223,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:223,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:225,19'
          Dst:             winpr_Data_Get_INT16
        - Src:             'winpr/include/winpr/stream.h:227,4'
          Dst:             Stream_Seek
    - functionName:    winpr_Data_Get_INT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Get_UINT16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:95,22'
          Dst:             winpr_Data_Get_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:    read_order_field_uint32
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1243
      functionLinenumberEnd: 1260
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          98
      EdgeCount:       30
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - order_field_flag_is_set
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1244,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1245,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1246,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1248,7'
          Dst:             order_field_flag_is_set
        - Src:             'libfreerdp/core/orders.c:1250,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:1255,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1258,2'
          Dst:             stream_read_u32_le
    - 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:    15
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:114,3'
          Dst:             winpr_int_assert
    - functionName:    update_read_delta_points
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1107
      functionLinenumberEnd: 1149
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          206
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Pointer
        - Stream_Seek
        - WLog_Print_dbg_tag
        - realloc
        - update_read_delta
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1114,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1115,41'
          Dst:             realloc
        - Src:             'libfreerdp/core/orders.c:1121,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1124,19'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/orders.c:1125,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/orders.c:1133,27'
          Dst:             update_read_delta
        - Src:             'libfreerdp/core/orders.c:1135,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:1139,27'
          Dst:             update_read_delta
        - Src:             'libfreerdp/core/orders.c:1141,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    update_read_delta
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 893
      functionLinenumberEnd: 918
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          98
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u8
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:897,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:900,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:909,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:912,3'
          Dst:             stream_read_u8
    - functionName:    check_val_fits_int16_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          91
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:85,9'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/orders.c:89,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:90,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:97,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:98,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    update_read_delta_rects
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1042
      functionLinenumberEnd: 1103
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          331
      EdgeCount:       59
      CyclomaticComplexity: 17
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Pointer
        - Stream_Seek
        - WLog_Print_dbg_tag
        - update_read_delta
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1049,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:1055,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1058,19'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/orders.c:1059,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/orders.c:1067,27'
          Dst:             update_read_delta
        - Src:             'libfreerdp/core/orders.c:1070,27'
          Dst:             update_read_delta
        - Src:             'libfreerdp/core/orders.c:1075,9'
          Dst:             update_read_delta
        - Src:             'libfreerdp/core/orders.c:1085,9'
          Dst:             update_read_delta
    - functionName:    read_order_field_uint16
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1201
      functionLinenumberEnd: 1218
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          99
      EdgeCount:       30
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - order_field_flag_is_set
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1202,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1203,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1204,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1206,7'
          Dst:             order_field_flag_is_set
        - Src:             'libfreerdp/core/orders.c:1208,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:1213,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1216,2'
          Dst:             stream_read_u16_le
    - 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:    47
      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:    update_read_color
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 643
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:646,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:650,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:652,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:654,2'
          Dst:             stream_read_u8
    - functionName:    update_read_brush
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 921
      functionLinenumberEnd: 982
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          305
      EdgeCount:       72
      CyclomaticComplexity: 15
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - get_bmf_bpp
        - get_checked_uint8_int
        - stream_read_u8
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:924,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:927,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:932,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:935,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:940,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:943,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:948,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:951,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:958,16'
          Dst:             get_bmf_bpp
        - Src:             'libfreerdp/core/orders.c:967,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:971,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:972,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:973,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:974,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:975,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:976,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:977,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:978,20'
          Dst:             get_checked_uint8_int
    - functionName:    get_bmf_bpp
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          77
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/core/orders.c:228,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:241,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    get_checked_uint8_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      char
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    110
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:63,2'
          Dst:             winpr_int_assert
    - functionName:    read_order_field_color
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1281
      functionLinenumberEnd: 1297
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          95
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - get_checked_uint8_int
        - order_field_flag_is_set
        - update_read_color
        - winpr_int_assert
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1282,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1283,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1284,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1286,42'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1286,7'
          Dst:             order_field_flag_is_set
        - Src:             'libfreerdp/core/orders.c:1288,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1288,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:1293,7'
          Dst:             update_read_color
    - functionName:    read_order_field_byte
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1160
      functionLinenumberEnd: 1175
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          99
      EdgeCount:       30
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - order_field_flag_is_set
        - stream_read_u8
        - winpr_int_assert
      functionUses:    35
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1161,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1162,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1163,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1165,7'
          Dst:             order_field_flag_is_set
        - Src:             'libfreerdp/core/orders.c:1167,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:1171,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1173,2'
          Dst:             stream_read_u8
    - functionName:    read_order_field_coord
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1277
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          90
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - get_checked_uint8_int
        - order_field_flag_is_set
        - update_read_coord
        - winpr_int_assert
      functionUses:    98
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1265,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1266,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1269,42'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1269,7'
          Dst:             order_field_flag_is_set
        - Src:             'libfreerdp/core/orders.c:1271,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1271,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:1276,9'
          Dst:             update_read_coord
    - functionName:    update_read_coord
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 619
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          77
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_i16_le
        - stream_read_i8
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:603,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:606,3'
          Dst:             stream_read_i8
        - Src:             'libfreerdp/core/orders.c:611,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:614,3'
          Dst:             stream_read_i16_le
    - 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:    1
      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:    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:    update_read_ellipse_cb_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2299
      functionLinenumberEnd: 2309
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          141
      EdgeCount:       28
      CyclomaticComplexity: 10
      functionsReached:
        - get_checked_uint8_int
        - read_order_field_byte
        - read_order_field_color
        - read_order_field_coord
        - update_read_brush
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2300,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2301,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2302,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2303,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2304,10'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:2305,10'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:2306,10'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:2307,10'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:2309,28'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2308,10'
          Dst:             update_read_brush
    - functionName:    update_read_ellipse_sc_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2288
      functionLinenumberEnd: 2295
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          111
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - read_order_field_byte
        - read_order_field_color
        - read_order_field_coord
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2289,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2290,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2291,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2292,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2293,10'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:2294,10'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:2295,10'
          Dst:             read_order_field_color
    - functionName:    update_read_polygon_cb_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2238
      functionLinenumberEnd: 2285
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          274
      EdgeCount:       54
      CyclomaticComplexity: 17
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - check_val_fits_int16_int
        - get_checked_int16_int
        - get_checked_uint8_int
        - read_order_field_byte
        - read_order_field_color
        - read_order_field_coord
        - stream_read_u8
        - update_read_brush
        - update_read_delta_points
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2240,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2241,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2242,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:2243,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:2244,7'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:2245,7'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:2249,25'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2248,7'
          Dst:             update_read_brush
        - Src:             'libfreerdp/core/orders.c:2252,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:2260,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2263,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:2266,8'
          Dst:             check_val_fits_int16_int
        - Src:             'libfreerdp/core/orders.c:2266,53'
          Dst:             check_val_fits_int16_int
        - Src:             'libfreerdp/core/orders.c:2270,33'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2271,33'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2269,8'
          Dst:             update_read_delta_points
        - Src:             'libfreerdp/core/orders.c:2277,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    get_checked_int16_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      short
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          56
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    36
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:72,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:73,2'
          Dst:             winpr_int_assert
    - functionName:    update_read_polygon_sc_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2199
      functionLinenumberEnd: 2235
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          213
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - check_val_fits_int16_int
        - get_checked_int16_int
        - read_order_field_byte
        - read_order_field_color
        - read_order_field_coord
        - stream_read_u8
        - update_read_delta_points
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2201,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2202,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2203,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:2204,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:2205,7'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:2206,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:2214,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2217,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:2219,8'
          Dst:             check_val_fits_int16_int
        - Src:             'libfreerdp/core/orders.c:2219,53'
          Dst:             check_val_fits_int16_int
        - Src:             'libfreerdp/core/orders.c:2224,35'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2225,35'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2223,10'
          Dst:             update_read_delta_points
        - Src:             'libfreerdp/core/orders.c:2229,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_read_fast_glyph_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2116
      functionLinenumberEnd: 2195
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         73
      ICount:          470
      EdgeCount:       102
      CyclomaticComplexity: 31
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_GetRemainingLength
        - Stream_Read
        - Stream_SafeSeekEx
        - Stream_StaticInit
        - WLog_Print_dbg_tag
        - read_order_field_2bytes
        - read_order_field_byte
        - read_order_field_color
        - read_order_field_coord
        - realloc
        - stream_read_u8
        - update_read_2byte_signed
        - update_read_2byte_unsigned
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2118,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:2122,7'
          Dst:             read_order_field_2bytes
        - Src:             'libfreerdp/core/orders.c:2124,7'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:2125,7'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:2126,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2127,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2128,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2129,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2130,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2131,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2132,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2133,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2134,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2135,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2143,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2146,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:2148,9'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/orders.c:2149,8'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/orders.c:2153,9'
          Dst:             Stream_StaticInit
        - Src:             'libfreerdp/core/orders.c:2155,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:2159,9'
          Dst:             update_read_2byte_signed
        - Src:             'libfreerdp/core/orders.c:2160,9'
          Dst:             update_read_2byte_signed
        - Src:             'libfreerdp/core/orders.c:2161,9'
          Dst:             update_read_2byte_unsigned
        - Src:             'libfreerdp/core/orders.c:2162,9'
          Dst:             update_read_2byte_unsigned
        - Src:             'libfreerdp/core/orders.c:2167,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:2172,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/orders.c:2178,27'
          Dst:             realloc
        - Src:             'libfreerdp/core/orders.c:2184,5'
          Dst:             Stream_Read
    - functionName:    update_read_2byte_signed
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 748
      functionLinenumberEnd: 772
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          103
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u8
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:752,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:755,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:761,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:764,3'
          Dst:             stream_read_u8
    - functionName:    update_read_2byte_unsigned
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 724
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          83
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u8
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:704,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:707,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:711,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:715,3'
          Dst:             stream_read_u8
    - 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:    8
      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:    update_read_fast_index_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2080
      functionLinenumberEnd: 2113
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          272
      EdgeCount:       59
      CyclomaticComplexity: 19
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_Seek
        - read_order_field_2bytes
        - read_order_field_byte
        - read_order_field_color
        - read_order_field_coord
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2081,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:2082,7'
          Dst:             read_order_field_2bytes
        - Src:             'libfreerdp/core/orders.c:2084,7'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:2085,7'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:2086,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2087,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2088,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2089,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2090,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2091,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2092,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2093,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2094,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2095,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:2100,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2103,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:2105,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2108,3'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/orders.c:2109,3'
          Dst:             Stream_Seek
    - functionName:    update_read_glyph_index_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1968
      functionLinenumberEnd: 2004
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          313
      EdgeCount:       68
      CyclomaticComplexity: 22
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_Seek
        - get_checked_uint8_int
        - read_order_field_byte
        - read_order_field_color
        - read_order_field_int16
        - stream_read_u8
        - update_read_brush
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1969,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1970,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1971,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1972,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1973,7'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:1974,7'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:1975,7'
          Dst:             read_order_field_int16
        - Src:             'libfreerdp/core/orders.c:1976,7'
          Dst:             read_order_field_int16
        - Src:             'libfreerdp/core/orders.c:1977,7'
          Dst:             read_order_field_int16
        - Src:             'libfreerdp/core/orders.c:1978,7'
          Dst:             read_order_field_int16
        - Src:             'libfreerdp/core/orders.c:1979,7'
          Dst:             read_order_field_int16
        - Src:             'libfreerdp/core/orders.c:1980,7'
          Dst:             read_order_field_int16
        - Src:             'libfreerdp/core/orders.c:1981,7'
          Dst:             read_order_field_int16
        - Src:             'libfreerdp/core/orders.c:1982,7'
          Dst:             read_order_field_int16
        - Src:             'libfreerdp/core/orders.c:1984,25'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1983,7'
          Dst:             update_read_brush
        - Src:             'libfreerdp/core/orders.c:1985,7'
          Dst:             read_order_field_int16
        - Src:             'libfreerdp/core/orders.c:1986,7'
          Dst:             read_order_field_int16
        - Src:             'libfreerdp/core/orders.c:1991,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1994,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:1996,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1999,3'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/orders.c:2000,3'
          Dst:             Stream_Seek
    - functionName:    update_read_save_bitmap_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1956
      functionLinenumberEnd: 1963
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - read_order_field_byte
        - read_order_field_coord
        - read_order_field_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1957,10'
          Dst:             read_order_field_uint32
        - Src:             'libfreerdp/core/orders.c:1959,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1960,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1961,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1962,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1963,10'
          Dst:             read_order_field_byte
    - functionName:    update_read_mem3blt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1931
      functionLinenumberEnd: 1952
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          207
      EdgeCount:       42
      CyclomaticComplexity: 14
      functionsReached:
        - get_checked_uint8_int
        - read_order_field_byte
        - read_order_field_color
        - read_order_field_coord
        - read_order_field_uint16
        - update_read_brush
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1932,7'
          Dst:             read_order_field_uint16
        - Src:             'libfreerdp/core/orders.c:1933,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1934,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1935,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1936,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1937,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1938,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1939,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1940,7'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:1941,7'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:1945,25'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1944,7'
          Dst:             update_read_brush
        - Src:             'libfreerdp/core/orders.c:1946,7'
          Dst:             read_order_field_uint16
    - functionName:    update_read_memblt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1870
      functionLinenumberEnd: 1888
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          185
      EdgeCount:       42
      CyclomaticComplexity: 14
      functionsReached:
        - read_order_field_byte
        - read_order_field_coord
        - read_order_field_uint16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1874,7'
          Dst:             read_order_field_uint16
        - Src:             'libfreerdp/core/orders.c:1875,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1876,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1877,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1878,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1879,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1880,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1881,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1882,7'
          Dst:             read_order_field_uint16
    - functionName:    update_read_polyline_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1828
      functionLinenumberEnd: 1866
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          213
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - check_val_fits_int16_int
        - get_checked_int16_int
        - read_order_field_byte
        - read_order_field_color
        - read_order_field_coord
        - read_order_field_uint16
        - stream_read_u8
        - update_read_delta_points
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1831,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1832,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1833,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1834,7'
          Dst:             read_order_field_uint16
        - Src:             'libfreerdp/core/orders.c:1835,7'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:1836,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1844,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1847,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:1849,8'
          Dst:             check_val_fits_int16_int
        - Src:             'libfreerdp/core/orders.c:1849,51'
          Dst:             check_val_fits_int16_int
        - Src:             'libfreerdp/core/orders.c:1854,35'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:1855,35'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:1853,10'
          Dst:             update_read_delta_points
        - Src:             'libfreerdp/core/orders.c:1859,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_read_line_to_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1773
      functionLinenumberEnd: 1783
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          150
      EdgeCount:       31
      CyclomaticComplexity: 11
      functionsReached:
        - read_order_field_byte
        - read_order_field_color
        - read_order_field_coord
        - read_order_field_uint16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1774,10'
          Dst:             read_order_field_uint16
        - Src:             'libfreerdp/core/orders.c:1775,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1776,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1777,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1778,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1779,10'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:1780,10'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1781,10'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1782,10'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1783,10'
          Dst:             read_order_field_color
    - functionName:    update_read_multi_draw_nine_grid_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1736
      functionLinenumberEnd: 1770
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          172
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - read_order_field_byte
        - read_order_field_coord
        - read_order_field_uint16
        - stream_read_u16_le
        - update_read_delta_rects
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1738,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1740,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1741,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1743,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1745,7'
          Dst:             read_order_field_uint16
        - Src:             'libfreerdp/core/orders.c:1747,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1752,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1756,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:1757,10'
          Dst:             update_read_delta_rects
        - Src:             'libfreerdp/core/orders.c:1763,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_read_multi_opaque_rect_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1673
      functionLinenumberEnd: 1731
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          284
      EdgeCount:       58
      CyclomaticComplexity: 16
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - read_order_field_byte
        - read_order_field_coord
        - stream_read_u16_le
        - stream_read_u8
        - update_read_delta_rects
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1675,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1676,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1677,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1678,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1683,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1686,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:1692,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1695,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:1701,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1704,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:1709,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1714,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1718,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:1719,10'
          Dst:             update_read_delta_rects
        - Src:             'libfreerdp/core/orders.c:1724,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_read_multi_scrblt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1634
      functionLinenumberEnd: 1668
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          222
      EdgeCount:       52
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - read_order_field_byte
        - read_order_field_coord
        - stream_read_u16_le
        - update_read_delta_rects
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1635,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1636,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1639,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1640,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1641,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1642,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1643,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1644,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1645,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1646,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1651,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1655,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:1656,10'
          Dst:             update_read_delta_rects
        - Src:             'libfreerdp/core/orders.c:1661,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_read_multi_patblt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1590
      functionLinenumberEnd: 1629
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          228
      EdgeCount:       47
      CyclomaticComplexity: 15
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - get_checked_uint8_int
        - read_order_field_byte
        - read_order_field_color
        - read_order_field_coord
        - stream_read_u16_le
        - update_read_brush
        - update_read_delta_rects
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1591,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1592,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1593,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1594,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1595,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1596,7'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:1597,7'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:1601,25'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1600,7'
          Dst:             update_read_brush
        - Src:             'libfreerdp/core/orders.c:1605,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1610,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1614,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:1616,8'
          Dst:             update_read_delta_rects
        - Src:             'libfreerdp/core/orders.c:1622,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_read_multi_dstblt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1558
      functionLinenumberEnd: 1585
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          172
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - read_order_field_byte
        - read_order_field_coord
        - stream_read_u16_le
        - update_read_delta_rects
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1560,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1561,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1562,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1563,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1564,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1565,7'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1570,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1574,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:1575,10'
          Dst:             update_read_delta_rects
        - Src:             'libfreerdp/core/orders.c:1579,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_read_draw_nine_grid_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1547
      functionLinenumberEnd: 1552
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          85
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - read_order_field_coord
        - read_order_field_uint16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1548,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1549,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1550,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1551,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1552,10'
          Dst:             read_order_field_uint16
    - functionName:    update_read_opaque_rect_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1463
      functionLinenumberEnd: 1499
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          201
      EdgeCount:       44
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - read_order_field_coord
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1465,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1466,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1467,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1468,7'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1473,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1476,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:1482,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1485,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:1491,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1494,3'
          Dst:             stream_read_u8
    - functionName:    update_read_scrblt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1410
      functionLinenumberEnd: 1419
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          135
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - read_order_field_byte
        - read_order_field_coord
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1411,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1412,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1413,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1414,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1415,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1416,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1417,10'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1418,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1419,10'
          Dst:             read_order_field_coord
    - functionName:    update_read_patblt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1356
      functionLinenumberEnd: 1365
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          128
      EdgeCount:       25
      CyclomaticComplexity: 9
      functionsReached:
        - get_checked_uint8_int
        - read_order_field_byte
        - read_order_field_color
        - read_order_field_coord
        - update_read_brush
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1357,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1358,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1359,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1360,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1361,10'
          Dst:             read_order_field_byte
        - Src:             'libfreerdp/core/orders.c:1362,10'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:1363,10'
          Dst:             read_order_field_color
        - Src:             'libfreerdp/core/orders.c:1365,28'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1364,10'
          Dst:             update_read_brush
    - functionName:    update_read_dstblt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1316
      functionLinenumberEnd: 1321
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          85
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - read_order_field_byte
        - read_order_field_coord
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1317,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1318,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1319,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1320,10'
          Dst:             read_order_field_coord
        - Src:             'libfreerdp/core/orders.c:1321,10'
          Dst:             read_order_field_byte
    - functionName:    gdi_rop3_code_checked_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - gdi_rop3_code
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:123,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:124,9'
          Dst:             gdi_rop3_code
    - functionName:    gdi_rob3_code_string_checked_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - gdi_rop3_code_string
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:113,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:114,9'
          Dst:             gdi_rop3_code_string
    - functionName:    read_primary_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3747
      functionLinenumberEnd: 3861
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          359
      EdgeCount:       56
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - primary_update_cast
        - update_read_draw_nine_grid_order
        - update_read_dstblt_order
        - update_read_ellipse_cb_order
        - update_read_ellipse_sc_order
        - update_read_fast_glyph_order
        - update_read_fast_index_order
        - update_read_glyph_index_order
        - update_read_line_to_order
        - update_read_mem3blt_order
        - update_read_memblt_order
        - update_read_multi_draw_nine_grid_order
        - update_read_multi_dstblt_order
        - update_read_multi_opaque_rect_order
        - update_read_multi_patblt_order
        - update_read_multi_scrblt_order
        - update_read_opaque_rect_order
        - update_read_patblt_order
        - update_read_polygon_cb_order
        - update_read_polygon_sc_order
        - update_read_polyline_order
        - update_read_save_bitmap_order
        - update_read_scrblt_order
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/orders.c:3754,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3749,41'
          Dst:             primary_update_cast
        - Src:             'libfreerdp/core/orders.c:3757,9'
          Dst:             update_read_dstblt_order
        - Src:             'libfreerdp/core/orders.c:3761,9'
          Dst:             update_read_patblt_order
        - Src:             'libfreerdp/core/orders.c:3765,9'
          Dst:             update_read_scrblt_order
        - Src:             'libfreerdp/core/orders.c:3769,9'
          Dst:             update_read_opaque_rect_order
        - Src:             'libfreerdp/core/orders.c:3773,9'
          Dst:             update_read_draw_nine_grid_order
        - Src:             'libfreerdp/core/orders.c:3778,9'
          Dst:             update_read_multi_dstblt_order
        - Src:             'libfreerdp/core/orders.c:3782,9'
          Dst:             update_read_multi_patblt_order
        - Src:             'libfreerdp/core/orders.c:3786,9'
          Dst:             update_read_multi_scrblt_order
        - Src:             'libfreerdp/core/orders.c:3790,9'
          Dst:             update_read_multi_opaque_rect_order
        - Src:             'libfreerdp/core/orders.c:3795,9'
          Dst:             update_read_multi_draw_nine_grid_order
        - Src:             'libfreerdp/core/orders.c:3800,9'
          Dst:             update_read_line_to_order
        - Src:             'libfreerdp/core/orders.c:3804,9'
          Dst:             update_read_polyline_order
        - Src:             'libfreerdp/core/orders.c:3808,9'
          Dst:             update_read_memblt_order
        - Src:             'libfreerdp/core/orders.c:3812,9'
          Dst:             update_read_mem3blt_order
        - Src:             'libfreerdp/core/orders.c:3816,9'
          Dst:             update_read_save_bitmap_order
        - Src:             'libfreerdp/core/orders.c:3820,9'
          Dst:             update_read_glyph_index_order
        - Src:             'libfreerdp/core/orders.c:3824,9'
          Dst:             update_read_fast_index_order
        - Src:             'libfreerdp/core/orders.c:3828,9'
          Dst:             update_read_fast_glyph_order
        - Src:             'libfreerdp/core/orders.c:3832,9'
          Dst:             update_read_polygon_sc_order
        - Src:             'libfreerdp/core/orders.c:3836,9'
          Dst:             update_read_polygon_cb_order
        - Src:             'libfreerdp/core/orders.c:3840,9'
          Dst:             update_read_ellipse_sc_order
        - Src:             'libfreerdp/core/orders.c:3844,9'
          Dst:             update_read_ellipse_cb_order
        - Src:             'libfreerdp/core/orders.c:3848,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:3848,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:3856,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:3856,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    primary_update_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.h:199,2'
          Dst:             winpr_int_assert
    - functionName:    update_read_bounds
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3640
      functionLinenumberEnd: 3693
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          232
      EdgeCount:       65
      CyclomaticComplexity: 19
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u8
        - update_read_coord
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3643,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3646,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3650,8'
          Dst:             update_read_coord
        - Src:             'libfreerdp/core/orders.c:3655,8'
          Dst:             update_read_coord
        - Src:             'libfreerdp/core/orders.c:3661,8'
          Dst:             update_read_coord
        - Src:             'libfreerdp/core/orders.c:3666,8'
          Dst:             update_read_coord
        - Src:             'libfreerdp/core/orders.c:3672,8'
          Dst:             update_read_coord
        - Src:             'libfreerdp/core/orders.c:3677,8'
          Dst:             update_read_coord
        - Src:             'libfreerdp/core/orders.c:3683,8'
          Dst:             update_read_coord
        - Src:             'libfreerdp/core/orders.c:3688,8'
          Dst:             update_read_coord
    - functionName:    update_read_field_flags
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3581
      functionLinenumberEnd: 3605
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          119
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Get_UINT8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3593,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3600,23'
          Dst:             Stream_Get_UINT8
    - functionName:    Stream_Get_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u8
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:347,10'
          Dst:             stream_read_u8
    - functionName:    check_primary_order_supported
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          314
      EdgeCount:       39
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - check_order_activated
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/orders.c:416,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:507,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:507,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:511,9'
          Dst:             check_order_activated
    - functionName:    check_order_activated
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          144
      EdgeCount:       50
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:278,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:278,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:282,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:282,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:287,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:287,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:292,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:292,5'
          Dst:             WLog_PrintTextMessage
    - functionName:    update_decompress_brush
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3092
      functionLinenumberEnd: 3121
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          164
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Pointer
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3094,24'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/orders.c:3097,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3105,5'
          Dst:             stream_read_u8
    - functionName:    update_read_color_quad
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 687
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - update_read_colorref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:688,9'
          Dst:             update_read_colorref
    - functionName:    update_read_colorref
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 670
      functionLinenumberEnd: 685
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek_UINT8
        - stream_read_u8
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:673,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:677,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:679,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:681,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:683,2'
          Dst:             Stream_Seek_UINT8
    - functionName:    Stream_Seek_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1199
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1200,3'
          Dst:             Stream_Seek
    - functionName:    update_read_4byte_unsigned
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 811
      functionLinenumberEnd: 850
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          219
      EdgeCount:       39
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Get_UINT8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/orders.c:821,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:812,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:815,22'
          Dst:             Stream_Get_UINT8
        - Src:             'libfreerdp/core/orders.c:816,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:816,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:818,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:829,14'
          Dst:             Stream_Get_UINT8
        - Src:             'libfreerdp/core/orders.c:834,16'
          Dst:             Stream_Get_UINT8
        - Src:             'libfreerdp/core/orders.c:835,14'
          Dst:             Stream_Get_UINT8
        - Src:             'libfreerdp/core/orders.c:840,16'
          Dst:             Stream_Get_UINT8
        - Src:             'libfreerdp/core/orders.c:841,16'
          Dst:             Stream_Get_UINT8
        - Src:             'libfreerdp/core/orders.c:842,14'
          Dst:             Stream_Get_UINT8
    - functionName:    get_cbr2_bpp
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/orders.c:205,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:216,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_read_cache_brush_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3129
      functionLinenumberEnd: 3212
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         82
      ICount:          393
      EdgeCount:       104
      CyclomaticComplexity: 24
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - calloc
        - free_cache_brush_order
        - get_bmf_bpp
        - get_checked_uint8_int
        - stream_read_u8
        - update_cast
        - update_decompress_brush
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3133,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/orders.c:3134,35'
          Dst:             calloc
        - Src:             'libfreerdp/core/orders.c:3139,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3142,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3143,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3145,21'
          Dst:             get_bmf_bpp
        - Src:             'libfreerdp/core/orders.c:3149,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3150,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3153,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3154,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3162,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:3162,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:3167,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3172,5'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3189,34'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3188,10'
          Dst:             update_decompress_brush
        - Src:             'libfreerdp/core/orders.c:3197,10'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3202,6'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/orders.c:3210,2'
          Dst:             free_cache_brush_order
    - functionName:    update_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.h:171,2'
          Dst:             winpr_int_assert
    - functionName:    update_read_cache_glyph_v2_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2983
      functionLinenumberEnd: 3042
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          293
      EdgeCount:       57
      CyclomaticComplexity: 17
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - Stream_Read_UTF16_String
        - calloc
        - free_cache_glyph_v2_order
        - stream_read_u8
        - update_read_2byte_signed
        - update_read_2byte_unsigned
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2984,41'
          Dst:             calloc
        - Src:             'libfreerdp/core/orders.c:2997,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3000,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3002,8'
          Dst:             update_read_2byte_signed
        - Src:             'libfreerdp/core/orders.c:3002,51'
          Dst:             update_read_2byte_signed
        - Src:             'libfreerdp/core/orders.c:3003,8'
          Dst:             update_read_2byte_unsigned
        - Src:             'libfreerdp/core/orders.c:3004,8'
          Dst:             update_read_2byte_unsigned
        - Src:             'libfreerdp/core/orders.c:3012,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3020,3'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/orders.c:3025,39'
          Dst:             calloc
        - Src:             'libfreerdp/core/orders.c:3030,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3033,8'
          Dst:             Stream_Read_UTF16_String
        - Src:             'libfreerdp/core/orders.c:3040,2'
          Dst:             free_cache_glyph_v2_order
    - functionName:    update_read_cache_glyph_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2877
      functionLinenumberEnd: 2938
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          307
      EdgeCount:       71
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - Stream_Read_UTF16_String
        - calloc
        - free_cache_glyph_order
        - stream_read_i16_le
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2878,41'
          Dst:             calloc
        - Src:             'libfreerdp/core/orders.c:2880,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2881,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2886,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2889,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:2890,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:2896,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2899,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:2900,3'
          Dst:             stream_read_i16_le
        - Src:             'libfreerdp/core/orders.c:2901,3'
          Dst:             stream_read_i16_le
        - Src:             'libfreerdp/core/orders.c:2902,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:2903,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:2907,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2915,3'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/orders.c:2920,42'
          Dst:             calloc
        - Src:             'libfreerdp/core/orders.c:2925,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2929,8'
          Dst:             Stream_Read_UTF16_String
        - Src:             'libfreerdp/core/orders.c:2936,2'
          Dst:             free_cache_glyph_order
    - functionName:    update_read_cache_color_table_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2803
      functionLinenumberEnd: 2837
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          119
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - calloc
        - free_cache_color_table_order
        - stream_read_u16_le
        - stream_read_u8
        - update_read_color_quad
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2805,47'
          Dst:             calloc
        - Src:             'libfreerdp/core/orders.c:2810,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2813,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:2814,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:2822,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2828,3'
          Dst:             update_read_color_quad
        - Src:             'libfreerdp/core/orders.c:2834,2'
          Dst:             free_cache_color_table_order
    - functionName:    update_read_cache_bitmap_v3_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2624
      functionLinenumberEnd: 2758
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         112
      ICount:          547
      EdgeCount:       132
      CyclomaticComplexity: 22
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - Stream_Seek_UINT8
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - calloc
        - free_cache_bitmap_v3_order
        - freerdp_settings_get_bool
        - freerdp_settings_get_uint32
        - get_cbr2_bpp
        - realloc
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - update_cast
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/orders.c:2706,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2628,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/orders.c:2633,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2636,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2638,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/orders.c:2640,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:2640,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:2644,43'
          Dst:             calloc
        - Src:             'libfreerdp/core/orders.c:2651,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/orders.c:2654,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:2654,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:2662,25'
          Dst:             get_cbr2_bpp
        - Src:             'libfreerdp/core/orders.c:2664,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2667,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:2668,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/orders.c:2669,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/orders.c:2674,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2684,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:2688,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:2688,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:2699,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/orders.c:2700,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/orders.c:2701,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:2702,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:2703,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:2704,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/orders.c:2709,9'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/orders.c:2711,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:2711,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:2718,9'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/orders.c:2720,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:2726,9'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/orders.c:2728,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:2736,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:2740,26'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2743,20'
          Dst:             realloc
        - Src:             'libfreerdp/core/orders.c:2750,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/orders.c:2755,2'
          Dst:             free_cache_bitmap_v3_order
    - functionName:    update_read_cache_bitmap_v2_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2439
      functionLinenumberEnd: 2530
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          367
      EdgeCount:       85
      CyclomaticComplexity: 22
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - calloc
        - free_cache_bitmap_v2_order
        - get_cbr2_bpp
        - stream_read_u16_le
        - stream_read_u32_le
        - update_read_2byte_unsigned
        - update_read_4byte_unsigned
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2447,20'
          Dst:             calloc
        - Src:             'libfreerdp/core/orders.c:2455,31'
          Dst:             get_cbr2_bpp
        - Src:             'libfreerdp/core/orders.c:2461,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2464,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/orders.c:2465,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/orders.c:2470,8'
          Dst:             update_read_2byte_unsigned
        - Src:             'libfreerdp/core/orders.c:2477,8'
          Dst:             update_read_2byte_unsigned
        - Src:             'libfreerdp/core/orders.c:2478,8'
          Dst:             update_read_2byte_unsigned
        - Src:             'libfreerdp/core/orders.c:2482,7'
          Dst:             update_read_4byte_unsigned
        - Src:             'libfreerdp/core/orders.c:2483,7'
          Dst:             update_read_2byte_unsigned
        - Src:             'libfreerdp/core/orders.c:2493,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2496,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:2498,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:2500,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:2501,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:2510,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2521,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/orders.c:2527,2'
          Dst:             free_cache_bitmap_v2_order
    - functionName:    update_read_cache_bitmap_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2316
      functionLinenumberEnd: 2382
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          281
      EdgeCount:       68
      CyclomaticComplexity: 16
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - Stream_Seek_UINT8
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - calloc
        - free_cache_bitmap_order
        - stream_read_u16_le
        - stream_read_u8
        - update_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2318,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/orders.c:2323,17'
          Dst:             calloc
        - Src:             'libfreerdp/core/orders.c:2328,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2331,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:2332,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/orders.c:2333,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:2334,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:2335,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:2339,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:2339,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:2343,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:2344,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:2352,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2355,4'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/orders.c:2365,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:2373,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/orders.c:2379,2'
          Dst:             free_cache_bitmap_order
    - functionName:    check_secondary_order_supported
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          160
      EdgeCount:       33
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - check_order_activated
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/orders.c:356,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/orders.c:382,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:403,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:403,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:407,9'
          Dst:             check_order_activated
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    FIELD_SKIP_BUFFER16
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1299
      functionLinenumberEnd: 1312
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_SafeSeekEx
        - WLog_Print_dbg_tag
        - stream_read_u16_le
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1300,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:1303,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:1305,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/orders.c:1307,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_read_draw_gdiplus_cache_end_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3569
      functionLinenumberEnd: 3579
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          77
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_SafeSeekEx
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3570,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3573,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3574,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3575,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3576,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3577,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/orders.c:3578,9'
          Dst:             Stream_SafeSeekEx
    - functionName:    update_read_draw_gdiplus_cache_next_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3556
      functionLinenumberEnd: 3565
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          61
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - FIELD_SKIP_BUFFER16
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u16_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3557,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3560,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3561,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3562,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3563,2'
          Dst:             FIELD_SKIP_BUFFER16
    - functionName:    update_read_draw_gdiplus_cache_first_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3542
      functionLinenumberEnd: 3552
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          77
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_SafeSeekEx
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3543,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3546,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3547,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3548,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3549,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3550,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/orders.c:3551,9'
          Dst:             Stream_SafeSeekEx
    - functionName:    update_read_draw_gdiplus_end_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3529
      functionLinenumberEnd: 3538
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          62
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_SafeSeekEx
        - Stream_Seek_UINT8
        - stream_read_u16_le
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3530,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3533,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/orders.c:3534,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3535,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/orders.c:3536,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/orders.c:3537,9'
          Dst:             Stream_SafeSeekEx
    - functionName:    update_read_draw_gdiplus_next_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3520
      functionLinenumberEnd: 3527
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - FIELD_SKIP_BUFFER16
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek_UINT8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3521,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3524,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/orders.c:3525,2'
          Dst:             FIELD_SKIP_BUFFER16
    - functionName:    update_read_draw_gdiplus_first_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3508
      functionLinenumberEnd: 3517
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          62
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_SafeSeekEx
        - Stream_Seek_UINT8
        - stream_read_u16_le
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3509,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3512,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/orders.c:3513,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3514,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/orders.c:3515,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/orders.c:3516,9'
          Dst:             Stream_SafeSeekEx
    - functionName:    update_read_stream_bitmap_next_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3496
      functionLinenumberEnd: 3505
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - FIELD_SKIP_BUFFER16
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u16_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3497,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3500,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3501,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3502,2'
          Dst:             FIELD_SKIP_BUFFER16
    - functionName:    update_read_stream_bitmap_first_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3458
      functionLinenumberEnd: 3493
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          150
      EdgeCount:       38
      CyclomaticComplexity: 8
      functionsReached:
        - FIELD_SKIP_BUFFER16
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3459,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3462,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3463,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3467,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:3471,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3472,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3473,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3477,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3480,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/orders.c:3484,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3487,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3490,2'
          Dst:             FIELD_SKIP_BUFFER16
    - functionName:    update_read_frame_marker_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3449
      functionLinenumberEnd: 3455
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3450,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3453,2'
          Dst:             stream_read_u32_le
    - functionName:    update_read_create_nine_grid_bitmap_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3424
      functionLinenumberEnd: 3447
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          122
      EdgeCount:       28
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - update_read_colorref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3427,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3430,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3434,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:3438,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3440,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/orders.c:3441,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3442,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3443,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3444,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3445,2'
          Dst:             update_read_colorref
    - functionName:    update_read_switch_surface_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3398
      functionLinenumberEnd: 3404
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u16_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3399,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3402,2'
          Dst:             stream_read_u16_le
    - functionName:    update_read_create_offscreen_bitmap_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3293
      functionLinenumberEnd: 3348
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          224
      EdgeCount:       46
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - realloc
        - stream_read_u16_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3298,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3301,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3304,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3305,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3310,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:3317,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3320,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:3325,27'
          Dst:             realloc
        - Src:             'libfreerdp/core/orders.c:3334,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3339,4'
          Dst:             stream_read_u16_le
    - functionName:    read_altsec_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4341
      functionLinenumberEnd: 4417
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          201
      EdgeCount:       36
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - altsec_order_string
        - altsec_update_cast
        - update_read_create_nine_grid_bitmap_order
        - update_read_create_offscreen_bitmap_order
        - update_read_draw_gdiplus_cache_end_order
        - update_read_draw_gdiplus_cache_first_order
        - update_read_draw_gdiplus_cache_next_order
        - update_read_draw_gdiplus_end_order
        - update_read_draw_gdiplus_first_order
        - update_read_draw_gdiplus_next_order
        - update_read_frame_marker_order
        - update_read_stream_bitmap_first_order
        - update_read_stream_bitmap_next_order
        - update_read_switch_surface_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/orders.c:4347,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:4343,39'
          Dst:             altsec_update_cast
        - Src:             'libfreerdp/core/orders.c:4345,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:4350,9'
          Dst:             update_read_create_offscreen_bitmap_order
        - Src:             'libfreerdp/core/orders.c:4354,9'
          Dst:             update_read_switch_surface_order
        - Src:             'libfreerdp/core/orders.c:4358,9'
          Dst:             update_read_create_nine_grid_bitmap_order
        - Src:             'libfreerdp/core/orders.c:4362,9'
          Dst:             update_read_frame_marker_order
        - Src:             'libfreerdp/core/orders.c:4366,9'
          Dst:             update_read_stream_bitmap_first_order
        - Src:             'libfreerdp/core/orders.c:4370,9'
          Dst:             update_read_stream_bitmap_next_order
        - Src:             'libfreerdp/core/orders.c:4374,9'
          Dst:             update_read_draw_gdiplus_first_order
        - Src:             'libfreerdp/core/orders.c:4378,9'
          Dst:             update_read_draw_gdiplus_next_order
        - Src:             'libfreerdp/core/orders.c:4382,9'
          Dst:             update_read_draw_gdiplus_end_order
        - Src:             'libfreerdp/core/orders.c:4386,9'
          Dst:             update_read_draw_gdiplus_cache_first_order
        - Src:             'libfreerdp/core/orders.c:4390,9'
          Dst:             update_read_draw_gdiplus_cache_next_order
        - Src:             'libfreerdp/core/orders.c:4394,9'
          Dst:             update_read_draw_gdiplus_cache_end_order
        - Src:             'libfreerdp/core/orders.c:4413,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4413,3'
          Dst:             altsec_order_string
        - Src:             'libfreerdp/core/orders.c:4413,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    altsec_update_cast
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/update.h'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/update.h:185,2'
          Dst:             winpr_int_assert
    - functionName:    altsec_order_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 592
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - char
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - snprintf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:591,8'
          Dst:             snprintf
    - functionName:    check_alt_order_supported
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          146
      EdgeCount:       29
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - check_order_activated
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/orders.c:306,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:342,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:342,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:347,9'
          Dst:             check_order_activated
    - 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_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:    winpr_Data_Write_INT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 323
      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:319,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:    update_recv_primary_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3864
      functionLinenumberEnd: 4143
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         447
      ICount:          2243
      EdgeCount:       536
      CyclomaticComplexity: 91
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - check_primary_order_supported
        - freerdp_settings_get_bool
        - gdi_rob3_code_string_checked_int
        - gdi_rop3_code_checked_int
        - get_primary_drawing_order_field_bytes
        - primary_order_string
        - primary_update_cast
        - read_primary_order
        - stream_read_u8
        - update_cast
        - update_read_bounds
        - update_read_field_flags
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/orders.c:3935,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3867,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/orders.c:3869,41'
          Dst:             primary_update_cast
        - Src:             'libfreerdp/core/orders.c:3871,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3874,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3875,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3878,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3881,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/orders.c:3885,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:3888,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:3893,26'
          Dst:             primary_order_string
        - Src:             'libfreerdp/core/orders.c:3894,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:3894,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:3896,7'
          Dst:             check_primary_order_supported
        - Src:             'libfreerdp/core/orders.c:3899,10'
          Dst:             get_primary_drawing_order_field_bytes
        - Src:             'libfreerdp/core/orders.c:3903,7'
          Dst:             update_read_field_flags
        - Src:             'libfreerdp/core/orders.c:3905,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:3905,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:3913,9'
          Dst:             update_read_bounds
        - Src:             'libfreerdp/core/orders.c:3915,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:3915,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:3920,8'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:3928,7'
          Dst:             read_primary_order
        - Src:             'libfreerdp/core/orders.c:3931,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:3939,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:3939,4'
          Dst:             gdi_rob3_code_string_checked_int
        - Src:             'libfreerdp/core/orders.c:3939,4'
          Dst:             gdi_rop3_code_checked_int
        - Src:             'libfreerdp/core/orders.c:3939,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:3942,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:3948,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3949,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:3949,4'
          Dst:             gdi_rob3_code_string_checked_int
        - Src:             'libfreerdp/core/orders.c:3949,4'
          Dst:             gdi_rop3_code_checked_int
        - Src:             'libfreerdp/core/orders.c:3949,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:3952,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:3958,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3959,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:3959,4'
          Dst:             gdi_rob3_code_string_checked_int
        - Src:             'libfreerdp/core/orders.c:3959,4'
          Dst:             gdi_rop3_code_checked_int
        - Src:             'libfreerdp/core/orders.c:3959,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:3962,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:3968,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:3968,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:3969,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:3976,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:3976,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:3977,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:3984,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:3984,4'
          Dst:             gdi_rob3_code_string_checked_int
        - Src:             'libfreerdp/core/orders.c:3984,4'
          Dst:             gdi_rop3_code_checked_int
        - Src:             'libfreerdp/core/orders.c:3984,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:3987,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:3994,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:3994,4'
          Dst:             gdi_rob3_code_string_checked_int
        - Src:             'libfreerdp/core/orders.c:3994,4'
          Dst:             gdi_rop3_code_checked_int
        - Src:             'libfreerdp/core/orders.c:3994,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:3997,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4004,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4004,4'
          Dst:             gdi_rob3_code_string_checked_int
        - Src:             'libfreerdp/core/orders.c:4004,4'
          Dst:             gdi_rop3_code_checked_int
        - Src:             'libfreerdp/core/orders.c:4004,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4007,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4014,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4014,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4015,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4022,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4022,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4023,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4030,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4030,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4031,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4037,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4037,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4038,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4044,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:4045,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4045,4'
          Dst:             gdi_rob3_code_string_checked_int
        - Src:             'libfreerdp/core/orders.c:4045,4'
          Dst:             gdi_rop3_code_checked_int
        - Src:             'libfreerdp/core/orders.c:4045,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4048,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4054,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:4055,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4055,4'
          Dst:             gdi_rob3_code_string_checked_int
        - Src:             'libfreerdp/core/orders.c:4055,4'
          Dst:             gdi_rop3_code_checked_int
        - Src:             'libfreerdp/core/orders.c:4055,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4058,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4064,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4064,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4065,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4072,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4072,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4073,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4080,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4080,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4081,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4088,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4088,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4089,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4096,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4096,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4097,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4104,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4104,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4105,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4112,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4112,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4113,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4120,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4120,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4121,9'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4127,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4127,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4133,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4133,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4139,8'
          Dst:             WLog_Print_dbg_tag
    - functionName:    primary_order_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 552
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - snprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:551,8'
          Dst:             snprintf
    - functionName:    get_primary_drawing_order_field_bytes
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          191
      EdgeCount:       40
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/core/orders.c:135,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:196,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_recv_secondary_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4146
      functionLinenumberEnd: 4338
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         203
      ICount:          1024
      EdgeCount:       245
      CyclomaticComplexity: 44
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetPosition
        - Stream_SafeSeekEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - check_secondary_order_supported
        - free_cache_bitmap_order
        - free_cache_bitmap_v2_order
        - free_cache_bitmap_v3_order
        - free_cache_brush_order
        - free_cache_color_table_order
        - free_cache_glyph_order
        - free_cache_glyph_v2_order
        - freerdp_settings_get_bool
        - secondary_order_string
        - stream_read_i16_le
        - stream_read_u16_le
        - stream_read_u8
        - update_cast
        - update_read_cache_bitmap_order
        - update_read_cache_bitmap_v2_order
        - update_read_cache_bitmap_v3_order
        - update_read_cache_brush_order
        - update_read_cache_color_table_order
        - update_read_cache_glyph_order
        - update_read_cache_glyph_v2_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/orders.c:4204,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/orders.c:4263,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:4155,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/orders.c:4162,18'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/orders.c:4164,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:4167,2'
          Dst:             stream_read_i16_le
        - Src:             'libfreerdp/core/orders.c:4168,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/orders.c:4169,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:4171,10'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/orders.c:4174,9'
          Dst:             secondary_order_string
        - Src:             'libfreerdp/core/orders.c:4175,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4175,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4178,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4193,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4193,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4197,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:4197,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:4198,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:4201,7'
          Dst:             check_secondary_order_supported
        - Src:             'libfreerdp/core/orders.c:4211,8'
          Dst:             update_read_cache_bitmap_order
        - Src:             'libfreerdp/core/orders.c:4215,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4216,5'
          Dst:             free_cache_bitmap_order
        - Src:             'libfreerdp/core/orders.c:4226,8'
          Dst:             update_read_cache_bitmap_v2_order
        - Src:             'libfreerdp/core/orders.c:4230,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4231,5'
          Dst:             free_cache_bitmap_v2_order
        - Src:             'libfreerdp/core/orders.c:4238,35'
          Dst:             update_read_cache_bitmap_v3_order
        - Src:             'libfreerdp/core/orders.c:4242,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4243,5'
          Dst:             free_cache_bitmap_v3_order
        - Src:             'libfreerdp/core/orders.c:4251,8'
          Dst:             update_read_cache_color_table_order
        - Src:             'libfreerdp/core/orders.c:4255,10'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4256,5'
          Dst:             free_cache_color_table_order
        - Src:             'libfreerdp/core/orders.c:4268,33'
          Dst:             update_read_cache_glyph_order
        - Src:             'libfreerdp/core/orders.c:4272,12'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4273,7'
          Dst:             free_cache_glyph_order
        - Src:             'libfreerdp/core/orders.c:4281,10'
          Dst:             update_read_cache_glyph_v2_order
        - Src:             'libfreerdp/core/orders.c:4285,12'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4286,7'
          Dst:             free_cache_glyph_v2_order
        - Src:             'libfreerdp/core/orders.c:4301,32'
          Dst:             update_read_cache_brush_order
        - Src:             'libfreerdp/core/orders.c:4305,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4306,6'
          Dst:             free_cache_brush_order
        - Src:             'libfreerdp/core/orders.c:4312,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4312,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4318,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4318,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4321,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:4321,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:4322,8'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/orders.c:4325,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4325,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4332,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4332,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4334,8'
          Dst:             Stream_SafeSeekEx
    - functionName:    secondary_order_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 556
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - snprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:571,8'
          Dst:             snprintf
    - functionName:    update_recv_altsec_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4421
      functionLinenumberEnd: 4524
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         127
      ICount:          652
      EdgeCount:       146
      CyclomaticComplexity: 21
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - altsec_order_string
        - altsec_update_cast
        - check_alt_order_supported
        - read_altsec_order
        - update_cast
        - update_recv_altsec_window_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/orders.c:4450,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:4424,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/orders.c:4427,39'
          Dst:             altsec_update_cast
        - Src:             'libfreerdp/core/orders.c:4430,26'
          Dst:             altsec_order_string
        - Src:             'libfreerdp/core/orders.c:4432,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:4433,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:4434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:4436,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4436,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:4440,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4444,7'
          Dst:             check_alt_order_supported
        - Src:             'libfreerdp/core/orders.c:4447,7'
          Dst:             read_altsec_order
        - Src:             'libfreerdp/core/orders.c:4453,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4458,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4462,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4467,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4471,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4476,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4480,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4484,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4488,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4492,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4497,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4502,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:4507,9'
          Dst:             update_recv_altsec_window_order
        - Src:             'libfreerdp/core/orders.c:4520,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4520,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    update_recv_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4526
      functionLinenumberEnd: 4547
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          120
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u8
        - update_cast
        - update_recv_altsec_order
        - update_recv_primary_order
        - update_recv_secondary_order
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:4529,28'
          Dst:             update_cast
        - Src:             'libfreerdp/core/orders.c:4531,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/orders.c:4534,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/orders.c:4537,8'
          Dst:             update_recv_altsec_order
        - Src:             'libfreerdp/core/orders.c:4539,8'
          Dst:             update_recv_secondary_order
        - Src:             'libfreerdp/core/orders.c:4541,8'
          Dst:             update_recv_primary_order
        - Src:             'libfreerdp/core/orders.c:4544,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:4544,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    update_write_bounds
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3695
      functionLinenumberEnd: 3743
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         60
      ICount:          261
      EdgeCount:       74
      CyclomaticComplexity: 16
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - get_checked_uint8_int
        - update_write_coord_int
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3696,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3704,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3704,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3704,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3704,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3704,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3704,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:3708,8'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:3717,8'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:3726,8'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:3735,8'
          Dst:             update_write_coord_int
    - 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:    75
      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:    update_write_coord_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          109
      EdgeCount:       29
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_int_assert
      functionUses:    32
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:630,15'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/orders.c:631,7'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/orders.c:633,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/orders.c:639,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:639,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:639,2'
          Dst:             Stream_Write_UINT16_unchecked
    - 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:    23
      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:    update_write_field_flags
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3608
      functionLinenumberEnd: 3638
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         97
      ICount:          284
      EdgeCount:       100
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3614,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3614,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3614,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:3619,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3619,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3619,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:3621,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3621,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3621,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:3626,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3626,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3626,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:3628,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3628,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3628,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:3630,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3630,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3630,3'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    update_write_switch_surface_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3411
      functionLinenumberEnd: 3420
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          94
      EdgeCount:       27
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - update_approximate_switch_surface_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3412,15'
          Dst:             update_approximate_switch_surface_order
        - Src:             'libfreerdp/core/orders.c:3414,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:3417,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3418,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3418,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3418,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    update_approximate_switch_surface_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3407
      functionLinenumberEnd: 3408
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_write_create_offscreen_bitmap_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3365
      functionLinenumberEnd: 3396
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         86
      ICount:          308
      EdgeCount:       90
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - get_checked_uint16_int
        - update_approximate_create_offscreen_bitmap_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3371,13'
          Dst:             update_approximate_create_offscreen_bitmap_order
        - Src:             'libfreerdp/core/orders.c:3370,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:3381,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3381,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3381,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:3382,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:3382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3382,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:3382,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3382,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:3382,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:3383,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:3383,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3383,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:3383,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3383,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:3383,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:3387,3'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:3387,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3387,3'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:3387,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3387,3'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:3387,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:3391,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3391,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3391,4'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    update_approximate_create_offscreen_bitmap_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3352
      functionLinenumberEnd: 3360
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          51
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3355,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3358,2'
          Dst:             winpr_int_assert
    - functionName:    get_checked_uint16_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      short
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    54
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:54,2'
          Dst:             winpr_int_assert
    - functionName:    update_compress_brush
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3124
      functionLinenumberEnd: 3125
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_write_cache_brush_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3224
      functionLinenumberEnd: 3288
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         146
      ICount:          544
      EdgeCount:       162
      CyclomaticComplexity: 18
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT8_unchecked
        - WLog_Print_dbg_tag
        - get_bpp_bmf
        - get_checked_uint8_int
        - update_approximate_cache_brush_order
        - update_compress_brush
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3230,38'
          Dst:             update_approximate_cache_brush_order
        - Src:             'libfreerdp/core/orders.c:3229,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:3233,18'
          Dst:             get_bpp_bmf
        - Src:             'libfreerdp/core/orders.c:3236,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3236,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3236,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3236,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3236,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3236,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:3237,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3237,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3237,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:3238,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3238,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3238,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3238,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3238,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3238,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:3239,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3239,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3239,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3239,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3239,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3239,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:3240,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3240,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3240,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3240,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3240,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3240,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:3241,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3241,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3241,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3241,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3241,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3241,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:3249,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/orders.c:3255,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3255,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3255,5'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:3271,32'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3270,10'
          Dst:             update_compress_brush
        - Src:             'libfreerdp/core/orders.c:3281,6'
          Dst:             Stream_Write
    - functionName:    update_approximate_cache_brush_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3216
      functionLinenumberEnd: 3220
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_bpp_bmf
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          76
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/core/orders.c:251,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:264,4'
          Dst:             WLog_Print_dbg_tag
    - 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:    10
      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:    update_write_2byte_signed
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 774
      functionLinenumberEnd: 809
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         60
      ICount:          211
      EdgeCount:       65
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:794,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:794,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:794,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:796,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:796,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:796,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:805,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:805,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:805,3'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    update_write_cache_glyph_v2_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3054
      functionLinenumberEnd: 3090
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          279
      EdgeCount:       65
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT8_unchecked
        - Stream_Zero
        - get_checked_uint8_int
        - update_approximate_cache_glyph_v2_order
        - update_write_2byte_signed
        - update_write_2byte_unsigned
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3055,15'
          Dst:             update_approximate_cache_glyph_v2_order
        - Src:             'libfreerdp/core/orders.c:3057,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:3060,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3061,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3062,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3070,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3070,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3070,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3070,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:3070,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:3070,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:3072,8'
          Dst:             update_write_2byte_signed
        - Src:             'libfreerdp/core/orders.c:3072,51'
          Dst:             update_write_2byte_signed
        - Src:             'libfreerdp/core/orders.c:3073,8'
          Dst:             update_write_2byte_unsigned
        - Src:             'libfreerdp/core/orders.c:3074,8'
          Dst:             update_write_2byte_unsigned
        - Src:             'libfreerdp/core/orders.c:3081,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/orders.c:3086,3'
          Dst:             Stream_Zero
    - functionName:    update_approximate_cache_glyph_v2_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3046
      functionLinenumberEnd: 3049
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:3047,2'
          Dst:             winpr_int_assert
    - functionName:    update_write_2byte_unsigned
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 746
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         51
      ICount:          159
      EdgeCount:       53
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:735,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:735,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:735,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:737,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:737,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:737,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:742,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:742,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:742,3'
          Dst:             Stream_Write_UINT8_unchecked
    - 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:    update_write_cache_glyph_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2949
      functionLinenumberEnd: 2979
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         114
      ICount:          412
      EdgeCount:       118
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_INT16_unchecked
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - Stream_Zero
        - get_checked_uint16_int
        - get_checked_uint8_int
        - update_approximate_cache_glyph_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2951,15'
          Dst:             update_approximate_cache_glyph_order
        - Src:             'libfreerdp/core/orders.c:2953,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:2956,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2956,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2956,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2956,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2956,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2956,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2957,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2957,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2957,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2957,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2957,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2957,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2963,3'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2963,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2963,3'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2963,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2963,3'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2963,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2964,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2964,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2964,3'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2965,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2965,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2965,3'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2966,3'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2966,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2966,3'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2966,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2966,3'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2966,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2967,3'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2967,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2967,3'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2967,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2967,3'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2967,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2970,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/orders.c:2975,3'
          Dst:             Stream_Zero
    - functionName:    update_approximate_cache_glyph_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2942
      functionLinenumberEnd: 2945
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2943,2'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write_INT16_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 899
      functionLinenumberEnd: 906
      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
        - winpr_int_assert
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:900,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:901,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:902,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:902,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:904,3'
          Dst:             winpr_Data_Write_INT16
    - functionName:    update_write_color_quad
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          133
      EdgeCount:       45
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:694,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:694,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:694,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:696,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:696,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:696,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:698,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:698,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:698,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    update_write_cache_color_table_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2851
      functionLinenumberEnd: 2875
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          166
      EdgeCount:       43
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - get_checked_uint16_int
        - get_checked_uint8_int
        - update_approximate_cache_color_table_order
        - update_write_color_quad
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2858,8'
          Dst:             update_approximate_cache_color_table_order
        - Src:             'libfreerdp/core/orders.c:2860,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:2863,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2863,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2863,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2863,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2863,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2863,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2865,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2865,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2865,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2865,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2865,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2865,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2871,3'
          Dst:             update_write_color_quad
    - functionName:    update_approximate_cache_color_table_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2841
      functionLinenumberEnd: 2845
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_write_cache_bitmap_v3_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2769
      functionLinenumberEnd: 2797
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         140
      ICount:          432
      EdgeCount:       142
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - get_bpp_bmf
        - get_checked_uint16_int
        - get_checked_uint8_int
        - update_approximate_cache_bitmap_v3_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2775,13'
          Dst:             update_approximate_cache_bitmap_v3_order
        - Src:             'libfreerdp/core/orders.c:2774,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:2779,19'
          Dst:             get_bpp_bmf
        - Src:             'libfreerdp/core/orders.c:2784,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2784,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2784,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2784,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2784,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2784,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2786,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2786,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2786,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/orders.c:2787,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2787,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2787,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/orders.c:2788,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2788,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2788,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2788,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2788,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2788,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2789,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2790,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2791,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2791,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2791,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2791,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2791,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2791,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2792,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2792,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2792,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2792,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2792,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2792,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2793,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2793,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2793,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2793,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2793,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2793,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2794,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2794,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2794,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/orders.c:2795,2'
          Dst:             Stream_Write
    - functionName:    update_approximate_cache_bitmap_v3_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2762
      functionLinenumberEnd: 2764
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - 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:    5
      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:    update_write_4byte_unsigned
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 852
      functionLinenumberEnd: 890
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         156
      ICount:          451
      EdgeCount:       160
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:857,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:857,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:857,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:862,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:862,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:862,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:864,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:864,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:864,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:869,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:869,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:869,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:871,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:871,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:871,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:873,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:873,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:873,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:878,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:878,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:878,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:880,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:880,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:880,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:882,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:882,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:882,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:884,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:884,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:884,3'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    update_write_cache_bitmap_v2_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2544
      functionLinenumberEnd: 2619
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         141
      ICount:          555
      EdgeCount:       155
      CyclomaticComplexity: 16
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - get_bpp_bmf
        - get_checked_uint16_int
        - update_approximate_cache_bitmap_v2_order
        - update_write_2byte_unsigned
        - update_write_4byte_unsigned
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2549,13'
          Dst:             update_approximate_cache_bitmap_v2_order
        - Src:             'libfreerdp/core/orders.c:2548,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:2552,19'
          Dst:             get_bpp_bmf
        - Src:             'libfreerdp/core/orders.c:2555,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2556,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2557,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2563,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2563,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2563,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/orders.c:2564,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2564,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2564,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/orders.c:2569,8'
          Dst:             update_write_2byte_unsigned
        - Src:             'libfreerdp/core/orders.c:2574,8'
          Dst:             update_write_2byte_unsigned
        - Src:             'libfreerdp/core/orders.c:2575,8'
          Dst:             update_write_2byte_unsigned
        - Src:             'libfreerdp/core/orders.c:2582,7'
          Dst:             update_write_4byte_unsigned
        - Src:             'libfreerdp/core/orders.c:2583,7'
          Dst:             update_write_2byte_unsigned
        - Src:             'libfreerdp/core/orders.c:2590,4'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2590,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2590,4'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2590,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2590,4'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2590,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2593,4'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2593,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2593,4'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2593,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2593,4'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2593,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2596,4'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2596,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2596,4'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2596,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2596,4'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2596,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2598,4'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2598,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2598,4'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2598,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2598,4'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2598,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2604,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:2607,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/orders.c:2611,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:2614,3'
          Dst:             Stream_Write
    - functionName:    update_approximate_cache_bitmap_v2_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2534
      functionLinenumberEnd: 2539
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2535,2'
          Dst:             winpr_int_assert
    - functionName:    update_write_cache_bitmap_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2395
      functionLinenumberEnd: 2433
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         109
      ICount:          371
      EdgeCount:       113
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - get_checked_uint16_int
        - get_checked_uint8_int
        - update_approximate_cache_bitmap_order
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2397,15'
          Dst:             update_approximate_cache_bitmap_order
        - Src:             'libfreerdp/core/orders.c:2399,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:2407,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2407,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2407,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2407,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2407,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2407,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2408,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2409,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2409,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2409,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2409,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2409,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2409,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2410,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2410,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2410,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2410,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2410,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2410,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2412,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2412,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2412,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2412,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2412,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2412,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2413,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2413,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2413,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2413,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2413,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2413,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2414,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2414,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2414,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2414,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2414,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:2414,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2421,4'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/orders.c:2425,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/orders.c:2429,3'
          Dst:             Stream_Write
    - functionName:    update_approximate_cache_bitmap_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2386
      functionLinenumberEnd: 2390
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2387,2'
          Dst:             winpr_int_assert
    - functionName:    update_write_glyph_index_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2016
      functionLinenumberEnd: 2077
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         228
      ICount:          873
      EdgeCount:       235
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_INT16_unchecked
        - Stream_Write_UINT8_unchecked
        - get_checked_int16_int
        - get_checked_uint8_int
        - update_approximate_glyph_index_order
        - update_write_brush
        - update_write_color
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:2017,15'
          Dst:             update_approximate_glyph_index_order
        - Src:             'libfreerdp/core/orders.c:2019,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:2022,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:2026,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2026,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2026,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2026,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2026,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2026,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2028,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2028,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2028,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2028,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2028,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2028,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2030,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2030,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2030,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2030,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2030,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2030,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2032,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2032,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2032,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2032,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2032,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2032,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2034,29'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2034,7'
          Dst:             update_write_color
        - Src:             'libfreerdp/core/orders.c:2037,7'
          Dst:             update_write_color
        - Src:             'libfreerdp/core/orders.c:2040,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:2043,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2043,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2043,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2043,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2043,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2043,2'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2045,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2045,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2045,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2045,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2045,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2045,2'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2047,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2047,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2047,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2047,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2047,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2047,2'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2049,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2049,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2049,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2049,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2049,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2049,2'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2051,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2051,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2051,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2051,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2051,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2051,2'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2053,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2053,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2053,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2053,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2053,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2053,2'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2055,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2055,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2055,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2055,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2055,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2055,2'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2057,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2057,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2057,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2057,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2057,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2057,2'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2064,26'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2063,7'
          Dst:             update_write_brush
        - Src:             'libfreerdp/core/orders.c:2067,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:2070,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2070,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2070,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2070,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2070,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2070,2'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2072,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2072,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2072,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2072,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2072,2'
          Dst:             get_checked_int16_int
        - Src:             'libfreerdp/core/orders.c:2072,2'
          Dst:             Stream_Write_INT16_unchecked
        - Src:             'libfreerdp/core/orders.c:2074,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2074,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2074,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2074,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:2074,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:2074,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:2075,2'
          Dst:             Stream_Write
    - functionName:    update_approximate_glyph_index_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2008
      functionLinenumberEnd: 2011
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_write_color
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          133
      EdgeCount:       45
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:662,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:662,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:662,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:664,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:664,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:664,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:666,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:666,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:666,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    update_write_brush
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 984
      functionLinenumberEnd: 1040
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         191
      ICount:          693
      EdgeCount:       204
      CyclomaticComplexity: 15
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - get_bmf_bpp
        - get_checked_uint8_int
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:987,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:989,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:989,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:989,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:989,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:989,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:989,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:994,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:996,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:996,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:996,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:996,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:996,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:996,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1001,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:1003,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1003,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1003,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1003,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1003,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1003,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1010,16'
          Dst:             get_bmf_bpp
        - Src:             'libfreerdp/core/orders.c:1019,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:1021,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1021,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1021,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1021,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1021,3'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1021,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1027,8'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:1029,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1029,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1029,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1030,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1030,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1030,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1031,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1031,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1031,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1032,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1032,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1032,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1033,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1033,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1033,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1034,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1034,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1034,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1035,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1035,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1035,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1036,20'
          Dst:             get_checked_uint8_int
    - functionName:    update_write_memblt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1898
      functionLinenumberEnd: 1928
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          290
      EdgeCount:       67
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - get_checked_uint16_int
        - get_checked_uint8_int
        - update_approximate_memblt_order
        - update_write_coord_int
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1899,41'
          Dst:             update_approximate_memblt_order
        - Src:             'libfreerdp/core/orders.c:1899,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:1904,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1904,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1904,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:1906,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1909,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1912,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1915,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1918,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1918,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1918,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1918,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1918,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1918,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1920,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1923,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1926,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:1926,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1926,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:1926,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1926,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:1926,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    update_approximate_memblt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1891
      functionLinenumberEnd: 1894
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_write_line_to_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1794
      functionLinenumberEnd: 1824
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          320
      EdgeCount:       75
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - get_checked_uint16_int
        - get_checked_uint8_int
        - update_approximate_line_to_order
        - update_write_color
        - update_write_coord_int
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1795,41'
          Dst:             update_approximate_line_to_order
        - Src:             'libfreerdp/core/orders.c:1795,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:1800,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:1800,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1800,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:1800,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1800,2'
          Dst:             get_checked_uint16_int
        - Src:             'libfreerdp/core/orders.c:1800,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/orders.c:1802,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1805,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1808,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1811,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1814,2'
          Dst:             update_write_color
        - Src:             'libfreerdp/core/orders.c:1816,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1816,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1816,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1816,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1816,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1816,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1818,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1818,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1818,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1818,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1818,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1818,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1820,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1820,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1820,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1820,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1820,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1820,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1822,2'
          Dst:             update_write_color
    - functionName:    update_approximate_line_to_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1787
      functionLinenumberEnd: 1790
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_write_opaque_rect_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1511
      functionLinenumberEnd: 1542
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          251
      EdgeCount:       61
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - update_approximate_opaque_rect_order
        - update_write_coord_int
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1513,15'
          Dst:             update_approximate_opaque_rect_order
        - Src:             'libfreerdp/core/orders.c:1515,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:1521,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1524,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1527,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1530,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1534,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1534,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1534,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1537,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1537,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1537,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1540,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1540,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1540,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    update_approximate_opaque_rect_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1503
      functionLinenumberEnd: 1506
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_write_scrblt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1432
      functionLinenumberEnd: 1459
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          226
      EdgeCount:       54
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - update_approximate_scrblt_order
        - update_write_coord_int
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1433,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1435,41'
          Dst:             update_approximate_scrblt_order
        - Src:             'libfreerdp/core/orders.c:1435,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:1440,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1443,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1446,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1449,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1452,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1453,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1453,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1453,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1455,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1458,10'
          Dst:             update_write_coord_int
    - functionName:    update_approximate_scrblt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1423
      functionLinenumberEnd: 1428
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          44
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1424,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1425,2'
          Dst:             winpr_int_assert
    - functionName:    update_write_patblt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1376
      functionLinenumberEnd: 1406
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          214
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - get_checked_uint8_int
        - update_approximate_patblt_order
        - update_write_brush
        - update_write_color
        - update_write_coord_int
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1377,41'
          Dst:             update_approximate_patblt_order
        - Src:             'libfreerdp/core/orders.c:1377,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:1382,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1385,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1388,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1391,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1394,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1394,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1394,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1394,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1394,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1394,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/orders.c:1396,2'
          Dst:             update_write_color
        - Src:             'libfreerdp/core/orders.c:1398,2'
          Dst:             update_write_color
        - Src:             'libfreerdp/core/orders.c:1404,40'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1404,2'
          Dst:             update_write_brush
    - functionName:    update_approximate_patblt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1369
      functionLinenumberEnd: 1372
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_write_dstblt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1332
      functionLinenumberEnd: 1352
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          159
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - get_checked_uint8_int
        - update_approximate_dstblt_order
        - update_write_coord_int
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/orders.c:1333,41'
          Dst:             update_approximate_dstblt_order
        - Src:             'libfreerdp/core/orders.c:1333,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/orders.c:1338,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1341,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1344,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1347,7'
          Dst:             update_write_coord_int
        - Src:             'libfreerdp/core/orders.c:1350,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1350,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1350,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1350,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/orders.c:1350,2'
          Dst:             get_checked_uint8_int
        - Src:             'libfreerdp/core/orders.c:1350,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    update_approximate_dstblt_order
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/orders.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1325
      functionLinenumberEnd: 1328
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - 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:    1
      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_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,3'
          Dst:             winpr_int_assert
    - 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_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_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:    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:    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:    wts_read_drdynvc_close_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          37
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - MessageQueue_PostQuit
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:276,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:279,2'
          Dst:             MessageQueue_PostQuit
    - functionName:    wts_read_drdynvc_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          129
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Buffer
        - Stream_ConstPointer
        - Stream_GetPosition
        - Stream_Write
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - wts_queue_receive_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:244,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:245,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:248,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/server.c:251,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/server.c:255,38'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/server.c:255,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/server.c:257,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/server.c:259,42'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/server.c:259,10'
          Dst:             wts_queue_receive_data
        - Src:             'libfreerdp/core/server.c:268,41'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/server.c:268,9'
          Dst:             wts_queue_receive_data
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,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:    72
      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:    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:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    wts_queue_receive_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          216
      EdgeCount:       57
      CyclomaticComplexity: 8
      functionsReached:
        - MessageQueue_Post
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:82,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:89,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:90,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:90,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:96,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:101,9'
          Dst:             MessageQueue_Post
    - functionName:    wts_read_drdynvc_data_first
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          124
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_ConstPointer
        - Stream_EnsureRemainingCapacity
        - Stream_ResetPosition
        - Stream_Write
        - winpr_int_assert
        - wts_read_variable_uint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:217,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:218,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:219,23'
          Dst:             wts_read_variable_uint
        - Src:             'libfreerdp/core/server.c:231,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/server.c:233,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/server.c:236,37'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/server.c:236,2'
          Dst:             Stream_Write
    - functionName:    wts_read_variable_uint
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          119
      EdgeCount:       34
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/server.c:124,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/server.c:122,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:123,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:127,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/server.c:130,4'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/server.c:134,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/server.c:137,4'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/server.c:141,9'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/server.c:144,4'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/server.c:148,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    Stream_ResetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1358,3'
          Dst:             winpr_int_assert
    - functionName:    wts_read_drdynvc_create_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          139
      EdgeCount:       39
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:186,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:187,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:191,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/server.c:206,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/server.c:209,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    wts_get_dvc_channel_by_id
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - HashTable_GetItemValue
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:75,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:76,9'
          Dst:             HashTable_GetItemValue
    - functionName:    wts_read_drdynvc_capabilities_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          115
      EdgeCount:       30
      CyclomaticComplexity: 5
      functionsReached:
        - MessageQueue_Event
        - SetEvent
        - Stream_Seek_UINT8
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:157,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:158,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:162,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/server.c:163,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/server.c:168,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/server.c:178,18'
          Dst:             MessageQueue_Event
        - Src:             'libfreerdp/core/server.c:178,9'
          Dst:             SetEvent
    - functionName:    Stream_Seek_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1199
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1200,3'
          Dst:             Stream_Seek
    - functionName:    Stream_Get_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:347,10'
          Dst:             stream_read_u8
    - functionName:    wts_read_drdynvc_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         57
      ICount:          318
      EdgeCount:       64
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_GetPosition
        - Stream_Get_UINT8
        - Stream_ResetPosition
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - wts_get_dvc_channel_by_id
        - wts_read_drdynvc_capabilities_response
        - wts_read_drdynvc_close_response
        - wts_read_drdynvc_create_response
        - wts_read_drdynvc_data
        - wts_read_drdynvc_data_first
        - wts_read_variable_uint
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/server.c:311,3'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/server.c:340,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/server.c:290,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:291,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:293,18'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/server.c:298,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/server.c:299,22'
          Dst:             Stream_Get_UINT8
        - Src:             'libfreerdp/core/server.c:306,10'
          Dst:             wts_read_drdynvc_capabilities_response
        - Src:             'libfreerdp/core/server.c:324,25'
          Dst:             wts_read_variable_uint
        - Src:             'libfreerdp/core/server.c:332,10'
          Dst:             wts_get_dvc_channel_by_id
        - Src:             'libfreerdp/core/server.c:343,12'
          Dst:             wts_read_drdynvc_create_response
        - Src:             'libfreerdp/core/server.c:348,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/server.c:355,12'
          Dst:             wts_read_drdynvc_data_first
        - Src:             'libfreerdp/core/server.c:360,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/server.c:367,12'
          Dst:             wts_read_drdynvc_data
        - Src:             'libfreerdp/core/server.c:370,5'
          Dst:             wts_read_drdynvc_close_response
        - Src:             'libfreerdp/core/server.c:375,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/server.c:379,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/server.c:384,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/server.c:388,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/server.c:394,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WTSProcessChannelData
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - size_t
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         96
      ICount:          432
      EdgeCount:       116
      CyclomaticComplexity: 22
      functionsReached:
        - Stream_Buffer
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_ResetPosition
        - Stream_Write
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - wts_queue_receive_data
        - wts_read_drdynvc_pdu
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:458,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:459,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:470,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:470,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:492,9'
          Dst:             wts_queue_receive_data
        - Src:             'libfreerdp/core/server.c:503,3'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/core/server.c:506,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/server.c:509,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/server.c:513,7'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/server.c:515,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/server.c:520,10'
          Dst:             wts_read_drdynvc_pdu
        - Src:             'libfreerdp/core/server.c:524,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/server.c:528,43'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/server.c:529,34'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:529,34'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:528,11'
          Dst:             wts_queue_receive_data
        - Src:             'libfreerdp/core/server.c:532,3'
          Dst:             Stream_ResetPosition
    - functionName:    clearHandles
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1048
      functionLinenumberEnd: 1051
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - HashTable_Free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1049,2'
          Dst:             HashTable_Free
    - functionName:    initializeHandles
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1056
      functionLinenumberEnd: 1060
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - HashTable_New
        - clearHandles
        - winpr_atexit
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1057,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1058,20'
          Dst:             HashTable_New
        - Src:             'libfreerdp/core/server.c:1059,8'
          Dst:             winpr_atexit
        - Src:             'libfreerdp/core/server.c:1059,8'
          Dst:             clearHandles
    - 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:    server_channel_common_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2180
      functionLinenumberEnd: 2206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - short
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          94
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeCriticalSection
        - MessageQueue_New
        - Stream_New
        - calloc
        - server_channel_common_free
        - strncpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:2181,45'
          Dst:             calloc
        - Src:             'libfreerdp/core/server.c:2185,2'
          Dst:             InitializeCriticalSection
        - Src:             'libfreerdp/core/server.c:2187,25'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/server.c:2191,19'
          Dst:             MessageQueue_New
        - Src:             'libfreerdp/core/server.c:2198,2'
          Dst:             strncpy
        - Src:             'libfreerdp/core/server.c:2203,2'
          Dst:             server_channel_common_free
    - functionName:    server_channel_common_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2168
      functionLinenumberEnd: 2175
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - DeleteCriticalSection
        - MessageQueue_Free
        - Stream_Free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:2171,2'
          Dst:             MessageQueue_Free
        - Src:             'libfreerdp/core/server.c:2172,2'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/server.c:2173,2'
          Dst:             DeleteCriticalSection
    - functionName:    FreeRDP_WTSLogonUser
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2162
      functionLinenumberEnd: 2164
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:2163,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSLogoffUser
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2154
      functionLinenumberEnd: 2156
      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:             'libfreerdp/core/server.c:2155,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSGetActiveConsoleSessionId
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2149
      functionLinenumberEnd: 2151
      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:             'libfreerdp/core/server.c:2150,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSGetChildSessionId
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2143
      functionLinenumberEnd: 2145
      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:             'libfreerdp/core/server.c:2144,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSIsChildSessionsEnabled
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2137
      functionLinenumberEnd: 2139
      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:             'libfreerdp/core/server.c:2138,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSEnableChildSessions
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2131
      functionLinenumberEnd: 2133
      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:             'libfreerdp/core/server.c:2132,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSGetListenerSecurityA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2125
      functionLinenumberEnd: 2127
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:2126,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSGetListenerSecurityW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2114
      functionLinenumberEnd: 2116
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:2115,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSSetListenerSecurityA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2103
      functionLinenumberEnd: 2105
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:2104,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSSetListenerSecurityW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2093
      functionLinenumberEnd: 2095
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:2094,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSCreateListenerA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2083
      functionLinenumberEnd: 2085
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:2084,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSCreateListenerW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2072
      functionLinenumberEnd: 2074
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:2073,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSQueryListenerConfigA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2061
      functionLinenumberEnd: 2063
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:2062,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSQueryListenerConfigW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2051
      functionLinenumberEnd: 2053
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:2052,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSEnumerateListenersA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2041
      functionLinenumberEnd: 2043
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:2042,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSEnumerateListenersW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2031
      functionLinenumberEnd: 2033
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:2032,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSEnumerateProcessesExA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2021
      functionLinenumberEnd: 2023
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:2022,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSEnumerateProcessesExW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2011
      functionLinenumberEnd: 2013
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:2012,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSQueryUserToken
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2001
      functionLinenumberEnd: 2003
      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:             'libfreerdp/core/server.c:2002,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSUnRegisterSessionNotificationEx
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1994
      functionLinenumberEnd: 1996
      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:             'libfreerdp/core/server.c:1995,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSRegisterSessionNotificationEx
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1987
      functionLinenumberEnd: 1989
      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:             'libfreerdp/core/server.c:1988,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSUnRegisterSessionNotification
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1979
      functionLinenumberEnd: 1981
      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:             'libfreerdp/core/server.c:1980,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSRegisterSessionNotification
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1973
      functionLinenumberEnd: 1975
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1974,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSFreeMemoryExA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1966
      functionLinenumberEnd: 1968
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1967,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSFreeMemoryExW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1958
      functionLinenumberEnd: 1960
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1959,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSFreeMemory
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1951
      functionLinenumberEnd: 1953
      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:    FreeRDP_WTSVirtualChannelQuery
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1828
      functionLinenumberEnd: 1948
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          232
      EdgeCount:       42
      CyclomaticComplexity: 6
      functionsReached:
        - GetEventWaitObject
        - MessageQueue_Event
        - SetLastError
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/core/server.c:1839,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/server.c:1892,5'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1837,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1842,13'
          Dst:             MessageQueue_Event
        - Src:             'libfreerdp/core/server.c:1843,10'
          Dst:             GetEventWaitObject
        - Src:             'libfreerdp/core/server.c:1855,5'
          Dst:             SetLastError
        - Src:             'libfreerdp/core/server.c:1867,13'
          Dst:             MessageQueue_Event
        - Src:             'libfreerdp/core/server.c:1873,5'
          Dst:             SetLastError
        - Src:             'libfreerdp/core/server.c:1915,5'
          Dst:             SetLastError
        - Src:             'libfreerdp/core/server.c:1933,5'
          Dst:             SetLastError
    - functionName:    FreeRDP_WTSVirtualChannelPurgeOutput
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1821
      functionLinenumberEnd: 1823
      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:             'libfreerdp/core/server.c:1822,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSVirtualChannelPurgeInput
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1815
      functionLinenumberEnd: 1817
      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:             'libfreerdp/core/server.c:1816,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    wts_write_variable_uint
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         183
      ICount:          589
      EdgeCount:       203
      CyclomaticComplexity: 22
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:404,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:408,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:408,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:408,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:408,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:408,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:408,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:408,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:408,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:408,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/server.c:413,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:413,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:413,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:413,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:413,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:413,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:413,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:413,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:413,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/server.c:418,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:418,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:418,3'
          Dst:             Stream_Write_UINT32_unchecked
    - 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:    3
      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:    wts_queue_send_item
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          88
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - MessageQueue_Post
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:109,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:110,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:114,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:116,9'
          Dst:             MessageQueue_Post
    - functionName:    FreeRDP_WTSVirtualChannelWrite
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1721
      functionLinenumberEnd: 1812
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         91
      ICount:          449
      EdgeCount:       111
      CyclomaticComplexity: 22
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - SetLastError
        - Stream_Buffer
        - Stream_Free
        - Stream_GetPosition
        - Stream_GetRemainingLength
        - Stream_New
        - Stream_Seek_UINT8
        - Stream_Write
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - wts_queue_send_item
        - wts_write_variable_uint
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1734,2'
          Dst:             EnterCriticalSection
        - Src:             'libfreerdp/core/server.c:1735,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1742,4'
          Dst:             SetLastError
        - Src:             'libfreerdp/core/server.c:1748,8'
          Dst:             wts_queue_send_item
        - Src:             'libfreerdp/core/server.c:1763,8'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/server.c:1767,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/server.c:1768,5'
          Dst:             SetLastError
        - Src:             'libfreerdp/core/server.c:1772,13'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/server.c:1773,4'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/server.c:1774,13'
          Dst:             wts_write_variable_uint
        - Src:             'libfreerdp/core/server.c:1776,27'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/server.c:1778,40'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1778,40'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1778,13'
          Dst:             wts_write_variable_uint
        - Src:             'libfreerdp/core/server.c:1787,21'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/server.c:1792,4'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/server.c:1793,26'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/server.c:1794,4'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/server.c:1800,9'
          Dst:             wts_queue_send_item
        - Src:             'libfreerdp/core/server.c:1806,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1806,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1810,2'
          Dst:             LeaveCriticalSection
    - functionName:    peer_channel_queue_free_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1389
      functionLinenumberEnd: 1396
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FreeRDP_WTSVirtualChannelRead
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1674
      functionLinenumberEnd: 1717
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          169
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - MessageQueue_Peek
        - SetLastError
        - peer_channel_queue_free_message
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1680,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1682,7'
          Dst:             MessageQueue_Peek
        - Src:             'libfreerdp/core/server.c:1684,3'
          Dst:             SetLastError
        - Src:             'libfreerdp/core/server.c:1710,18'
          Dst:             MessageQueue_Peek
        - Src:             'libfreerdp/core/server.c:1711,3'
          Dst:             peer_channel_queue_free_message
    - functionName:    wts_write_drdynvc_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Pointer
        - Stream_Seek_UINT8
        - winpr_int_assert
        - wts_write_variable_uint
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:426,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:428,13'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/server.c:429,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/server.c:430,21'
          Dst:             wts_write_variable_uint
    - functionName:    FreeRDP_WTSVirtualChannelClose
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1615
      functionLinenumberEnd: 1669
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         48
      ICount:          221
      EdgeCount:       53
      CyclomaticComplexity: 7
      functionsReached:
        - HashTable_Remove
        - Stream_Buffer
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - WLog_Print_dbg_tag
        - WTSVirtualChannelWrite
        - channel_free
        - winpr_int_assert
        - wts_write_drdynvc_header
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1626,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1627,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1628,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1629,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1638,5'
          Dst:             channel_free
        - Src:             'libfreerdp/core/server.c:1647,9'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/server.c:1651,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/server.c:1656,6'
          Dst:             wts_write_drdynvc_header
        - Src:             'libfreerdp/core/server.c:1658,25'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/server.c:1659,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1660,57'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/server.c:1660,12'
          Dst:             WTSVirtualChannelWrite
        - Src:             'libfreerdp/core/server.c:1662,6'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/server.c:1665,4'
          Dst:             HashTable_Remove
    - functionName:    channel_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1024
      functionLinenumberEnd: 1026
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - server_channel_common_free
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1025,2'
          Dst:             server_channel_common_free
    - functionName:    wts_write_drdynvc_create_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          72
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - strlen
        - winpr_int_assert
        - wts_write_drdynvc_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:438,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:439,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:441,2'
          Dst:             wts_write_drdynvc_header
        - Src:             'libfreerdp/core/server.c:442,8'
          Dst:             strlen
        - Src:             'libfreerdp/core/server.c:444,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/server.c:447,2'
          Dst:             Stream_Write
    - functionName:    channel_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1401
      functionLinenumberEnd: 1424
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - short
        - short
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          103
      EdgeCount:       20
      CyclomaticComplexity: 3
      functionsReached:
        - channel_free
        - server_channel_common_new
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1406,6'
          Dst:             server_channel_common_new
        - Src:             'libfreerdp/core/server.c:1408,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1409,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1422,2'
          Dst:             channel_free
    - functionName:    FreeRDP_WTSVirtualChannelOpenEx
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1503
      functionLinenumberEnd: 1612
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         113
      ICount:          478
      EdgeCount:       132
      CyclomaticComplexity: 21
      functionsReached:
        - FreeRDP_WTSVirtualChannelOpenStatic
        - HashTable_GetItemValue
        - HashTable_Insert
        - HashTable_Lock
        - HashTable_Remove
        - HashTable_Unlock
        - InterlockedIncrement
        - SetLastError
        - Stream_Buffer
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - WTSVirtualChannelWrite
        - channel_free
        - channel_new
        - freerdp_settings_get_uint32
        - setup
        - strncmp
        - winpr_int_assert
        - wts_write_drdynvc_create_request
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1509,7'
          Dst:             setup
        - Src:             'libfreerdp/core/server.c:1515,2'
          Dst:             HashTable_Lock
        - Src:             'libfreerdp/core/server.c:1516,61'
          Dst:             HashTable_GetItemValue
        - Src:             'libfreerdp/core/server.c:1524,3'
          Dst:             HashTable_Unlock
        - Src:             'libfreerdp/core/server.c:1525,10'
          Dst:             FreeRDP_WTSVirtualChannelOpenStatic
        - Src:             'libfreerdp/core/server.c:1529,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1530,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1531,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1534,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1540,8'
          Dst:             strncmp
        - Src:             'libfreerdp/core/server.c:1549,3'
          Dst:             SetLastError
        - Src:             'libfreerdp/core/server.c:1555,3'
          Dst:             SetLastError
        - Src:             'libfreerdp/core/server.c:1559,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1560,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1561,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1564,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/server.c:1566,6'
          Dst:             channel_new
        - Src:             'libfreerdp/core/server.c:1570,3'
          Dst:             SetLastError
        - Src:             'libfreerdp/core/server.c:1574,19'
          Dst:             InterlockedIncrement
        - Src:             'libfreerdp/core/server.c:1575,23'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1575,23'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1577,7'
          Dst:             HashTable_Insert
        - Src:             'libfreerdp/core/server.c:1579,3'
          Dst:             channel_free
        - Src:             'libfreerdp/core/server.c:1583,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/server.c:1588,7'
          Dst:             wts_write_drdynvc_create_request
        - Src:             'libfreerdp/core/server.c:1592,22'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/server.c:1593,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1594,53'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/server.c:1594,8'
          Dst:             WTSVirtualChannelWrite
        - Src:             'libfreerdp/core/server.c:1600,2'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/server.c:1601,2'
          Dst:             HashTable_Unlock
        - Src:             'libfreerdp/core/server.c:1605,2'
          Dst:             Stream_Free
        - Src:             'libfreerdp/core/server.c:1607,3'
          Dst:             HashTable_Remove
        - Src:             'libfreerdp/core/server.c:1608,2'
          Dst:             HashTable_Unlock
        - Src:             'libfreerdp/core/server.c:1610,2'
          Dst:             SetLastError
    - functionName:    setup
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1064
      functionLinenumberEnd: 1065
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - initializeHandles
        - winpr_InitOnceExecuteOnce
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1065,9'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'libfreerdp/core/server.c:1065,9'
          Dst:             initializeHandles
    - functionName:    FreeRDP_WTSVirtualChannelOpenStatic
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1429
      functionLinenumberEnd: 1495
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         62
      ICount:          269
      EdgeCount:       70
      CyclomaticComplexity: 10
      functionsReached:
        - SetLastError
        - channel_free
        - channel_new
        - freerdp_settings_get_uint32
        - strncmp
        - strnlen
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1433,3'
          Dst:             SetLastError
        - Src:             'libfreerdp/core/server.c:1438,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1441,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1442,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1443,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1446,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1448,18'
          Dst:             strnlen
        - Src:             'libfreerdp/core/server.c:1451,3'
          Dst:             SetLastError
        - Src:             'libfreerdp/core/server.c:1460,28'
          Dst:             strncmp
        - Src:             'libfreerdp/core/server.c:1469,3'
          Dst:             SetLastError
        - Src:             'libfreerdp/core/server.c:1477,7'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/server.c:1479,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1480,13'
          Dst:             channel_new
        - Src:             'libfreerdp/core/server.c:1492,2'
          Dst:             channel_free
        - Src:             'libfreerdp/core/server.c:1493,2'
          Dst:             SetLastError
    - functionName:    FreeRDP_WTSVirtualChannelOpen
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1498
      functionLinenumberEnd: 1499
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDP_WTSVirtualChannelOpenStatic
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1499,9'
          Dst:             FreeRDP_WTSVirtualChannelOpenStatic
    - functionName:    FreeRDP_WTSWaitSystemEvent
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1383
      functionLinenumberEnd: 1385
      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:             'libfreerdp/core/server.c:1384,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSShutdownSystem
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1375
      functionLinenumberEnd: 1377
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1376,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSLogoffSession
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1368
      functionLinenumberEnd: 1370
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1369,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSDisconnectSession
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1360
      functionLinenumberEnd: 1362
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1361,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSSendMessageA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1352
      functionLinenumberEnd: 1354
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1353,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSSendMessageW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1341
      functionLinenumberEnd: 1343
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1342,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSSetUserConfigA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1330
      functionLinenumberEnd: 1332
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1331,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSSetUserConfigW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1320
      functionLinenumberEnd: 1322
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1321,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSQueryUserConfigA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1310
      functionLinenumberEnd: 1312
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1311,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSQueryUserConfigW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1300
      functionLinenumberEnd: 1302
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1301,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSQuerySessionInformationA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1266
      functionLinenumberEnd: 1293
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1282,4'
          Dst:             SetLastError
    - functionName:    FreeRDP_WTSQuerySessionInformationW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1258
      functionLinenumberEnd: 1260
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1259,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSTerminateProcess
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1248
      functionLinenumberEnd: 1250
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1249,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSEnumerateProcessesA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1240
      functionLinenumberEnd: 1242
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1241,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSEnumerateProcessesW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1230
      functionLinenumberEnd: 1232
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1231,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSEnumerateSessionsExA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1220
      functionLinenumberEnd: 1222
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1221,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSEnumerateSessionsExW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1210
      functionLinenumberEnd: 1212
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1211,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSEnumerateSessionsA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1200
      functionLinenumberEnd: 1202
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1201,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSEnumerateSessionsW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1190
      functionLinenumberEnd: 1192
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1191,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSCloseServer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1180
      functionLinenumberEnd: 1183
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - wtsCloseVCM
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1182,2'
          Dst:             wtsCloseVCM
    - functionName:    wtsCloseVCM
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1069
      functionLinenumberEnd: 1098
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          103
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - HashTable_Free
        - HashTable_Lock
        - HashTable_Remove
        - HashTable_Unlock
        - MessageQueue_Free
        - WTSVirtualChannelClose
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1070,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1072,2'
          Dst:             HashTable_Lock
        - Src:             'libfreerdp/core/server.c:1083,3'
          Dst:             HashTable_Remove
        - Src:             'libfreerdp/core/server.c:1085,3'
          Dst:             HashTable_Free
        - Src:             'libfreerdp/core/server.c:1090,11'
          Dst:             WTSVirtualChannelClose
        - Src:             'libfreerdp/core/server.c:1094,3'
          Dst:             MessageQueue_Free
        - Src:             'libfreerdp/core/server.c:1097,2'
          Dst:             HashTable_Unlock
    - functionName:    FreeRDP_WTSOpenServerExA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1175
      functionLinenumberEnd: 1176
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDP_WTSOpenServerA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1176,9'
          Dst:             FreeRDP_WTSOpenServerA
    - functionName:    FreeRDP_WTSOpenServerA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1101
      functionLinenumberEnd: 1166
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          185
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - HashTable_Insert
        - HashTable_KeyObject
        - HashTable_Lock
        - HashTable_New
        - HashTable_SetHashFunction
        - HashTable_Unlock
        - HashTable_ValueObject
        - MessageQueue_New
        - SetLastError
        - calloc
        - channelId_Hash
        - setup
        - winpr_int_assert
        - wtsCloseVCM
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1106,7'
          Dst:             setup
        - Src:             'libfreerdp/core/server.c:1113,3'
          Dst:             SetLastError
        - Src:             'libfreerdp/core/server.c:1117,34'
          Dst:             calloc
        - Src:             'libfreerdp/core/server.c:1126,15'
          Dst:             MessageQueue_New
        - Src:             'libfreerdp/core/server.c:1132,32'
          Dst:             HashTable_New
        - Src:             'libfreerdp/core/server.c:1137,7'
          Dst:             HashTable_SetHashFunction
        - Src:             'libfreerdp/core/server.c:1137,7'
          Dst:             channelId_Hash
        - Src:             'libfreerdp/core/server.c:1141,18'
          Dst:             HashTable_ValueObject
        - Src:             'libfreerdp/core/server.c:1142,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:1145,9'
          Dst:             HashTable_KeyObject
        - Src:             'libfreerdp/core/server.c:1150,3'
          Dst:             HashTable_Lock
        - Src:             'libfreerdp/core/server.c:1153,7'
          Dst:             HashTable_Insert
        - Src:             'libfreerdp/core/server.c:1154,3'
          Dst:             HashTable_Unlock
        - Src:             'libfreerdp/core/server.c:1163,2'
          Dst:             wtsCloseVCM
        - Src:             'libfreerdp/core/server.c:1164,2'
          Dst:             SetLastError
    - functionName:    wts_virtual_channel_manager_free_message
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1011
      functionLinenumberEnd: 1021
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    channelId_Hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1042
      functionLinenumberEnd: 1044
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    array_channel_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1032
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - channel_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1031,2'
          Dst:             channel_free
    - functionName:    dynChannelMatch
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1035
      functionLinenumberEnd: 1038
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WTSReceiveChannelData
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - size_t
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          160
      EdgeCount:       40
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - WTSProcessChannelData
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:543,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:544,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:545,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:548,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:558,12'
          Dst:             WTSProcessChannelData
        - Src:             'libfreerdp/core/server.c:562,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSOpenServerExW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1169
      functionLinenumberEnd: 1171
      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:             'libfreerdp/core/server.c:1170,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSOpenServerW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1005
      functionLinenumberEnd: 1007
      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:             'libfreerdp/core/server.c:1006,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSEnumerateServersA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 999
      functionLinenumberEnd: 1001
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:1000,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSEnumerateServersW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 989
      functionLinenumberEnd: 991
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:990,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSConnectSessionA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 979
      functionLinenumberEnd: 981
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:980,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSConnectSessionW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 970
      functionLinenumberEnd: 972
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:971,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSStopRemoteControlSession
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 961
      functionLinenumberEnd: 963
      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:             'libfreerdp/core/server.c:962,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSStartRemoteControlSessionExA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 957
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - char
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:956,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSStartRemoteControlSessionExW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 945
      functionLinenumberEnd: 947
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - char
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:946,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSStartRemoteControlSessionA
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 935
      functionLinenumberEnd: 937
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - char
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:936,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDP_WTSStartRemoteControlSessionW
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 926
      functionLinenumberEnd: 928
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - char
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:927,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WTSChannelGetOptions
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 908
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - wts_get_joined_channel_by_id
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:914,12'
          Dst:             wts_get_joined_channel_by_id
    - functionName:    wts_get_joined_channel_by_id
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 715
      functionLinenumberEnd: 731
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          113
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:719,2'
          Dst:             winpr_int_assert
    - functionName:    WTSGetAcceptedChannelNames
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 882
      functionLinenumberEnd: 905
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          142
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:889,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:891,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:894,18'
          Dst:             calloc
    - functionName:    WTSChannelGetName
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 867
      functionLinenumberEnd: 879
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - wts_get_joined_channel_by_id
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:873,12'
          Dst:             wts_get_joined_channel_by_id
    - functionName:    WTSChannelGetHandleById
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 852
      functionLinenumberEnd: 864
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - wts_get_joined_channel_by_id
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:858,12'
          Dst:             wts_get_joined_channel_by_id
    - functionName:    WTSChannelGetHandleByName
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 836
      functionLinenumberEnd: 849
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          86
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
        - wts_get_joined_channel_by_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:839,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:843,12'
          Dst:             wts_get_joined_channel_by_name
    - functionName:    wts_get_joined_channel_by_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 697
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          101
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - _strnicmp
        - strnlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:698,32'
          Dst:             strnlen
        - Src:             'libfreerdp/core/server.c:706,8'
          Dst:             _strnicmp
    - functionName:    WTSChannelSetHandleById
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 820
      functionLinenumberEnd: 833
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          77
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - wts_get_joined_channel_by_id
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:826,12'
          Dst:             wts_get_joined_channel_by_id
    - functionName:    WTSChannelSetHandleByName
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 803
      functionLinenumberEnd: 817
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          89
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
        - wts_get_joined_channel_by_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:806,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:810,12'
          Dst:             wts_get_joined_channel_by_name
    - functionName:    WTSChannelGetIdByHandle
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 794
      functionLinenumberEnd: 799
      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:             'libfreerdp/core/server.c:797,2'
          Dst:             winpr_int_assert
    - functionName:    WTSChannelGetId
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 778
      functionLinenumberEnd: 791
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          86
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
        - wts_get_joined_channel_by_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:781,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:785,12'
          Dst:             wts_get_joined_channel_by_name
    - functionName:    WTSVirtualChannelManagerSetDVCCreationCallback
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 768
      functionLinenumberEnd: 775
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:771,2'
          Dst:             winpr_int_assert
    - functionName:    WTSVirtualChannelManagerGetDrdynvcState
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 760
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:762,2'
          Dst:             winpr_int_assert
    - functionName:    WTSVirtualChannelManagerIsChannelJoined
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 750
      functionLinenumberEnd: 757
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - wts_get_joined_channel_by_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:756,10'
          Dst:             wts_get_joined_channel_by_name
    - functionName:    WTSIsChannelJoinedById
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 747
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - wts_get_joined_channel_by_id
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:746,10'
          Dst:             wts_get_joined_channel_by_id
    - functionName:    WTSIsChannelJoinedByName
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 739
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - wts_get_joined_channel_by_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:738,10'
          Dst:             wts_get_joined_channel_by_name
    - functionName:    WTSVirtualChannelManagerGetEventHandle
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 693
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - MessageQueue_Event
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:692,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:693,9'
          Dst:             MessageQueue_Event
    - functionName:    WTSVirtualChannelManagerCheckFileDescriptor
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 685
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WTSVirtualChannelManagerCheckFileDescriptorEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:686,9'
          Dst:             WTSVirtualChannelManagerCheckFileDescriptorEx
    - functionName:    WTSVirtualChannelManagerCheckFileDescriptorEx
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 643
      functionLinenumberEnd: 682
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          167
      EdgeCount:       42
      CyclomaticComplexity: 9
      functionsReached:
        - MessageQueue_Peek
        - WTSVirtualChannelManagerOpen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:655,8'
          Dst:             WTSVirtualChannelManagerOpen
        - Src:             'libfreerdp/core/server.c:659,9'
          Dst:             MessageQueue_Peek
        - Src:             'libfreerdp/core/server.c:668,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:669,3'
          Dst:             winpr_int_assert
    - functionName:    WTSVirtualChannelManagerOpen
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/server.c'
      linkageType:     InternalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 640
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         50
      ICount:          142
      EdgeCount:       54
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_GetPosition
        - Stream_StaticInit
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - WTSVirtualChannelOpen
        - WTSVirtualChannelWrite
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/server.c:614,30'
          Dst:             WTSVirtualChannelOpen
        - Src:             'libfreerdp/core/server.c:621,17'
          Dst:             Stream_StaticInit
        - Src:             'libfreerdp/core/server.c:625,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/server.c:626,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/server.c:627,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/server.c:631,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/server.c:632,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/server.c:634,9'
          Dst:             WTSVirtualChannelWrite
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - 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_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:    11
      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:    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:    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:    9
      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:    autodetect_send_bandwidth_measure_results
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         137
      ICount:          438
      EdgeCount:       148
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_Release
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - rdp_message_channel_pdu_init
        - rdp_send_message_channel_pdu
        - winpr_GetTickCount64
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:330,21'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/autodetect.c:332,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:333,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:338,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:338,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:348,15'
          Dst:             rdp_message_channel_pdu_init
        - Src:             'libfreerdp/core/autodetect.c:353,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:353,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:358,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:359,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:360,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:360,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:360,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:361,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:361,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:361,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:362,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:362,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:362,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/autodetect.c:363,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:363,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:363,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/autodetect.c:364,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/autodetect.c:370,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:370,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:371,3'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/autodetect.c:375,9'
          Dst:             rdp_send_message_channel_pdu
    - 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:    18
      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:    20
      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:    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_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:    autodetect_send_rtt_measure_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         69
      ICount:          172
      EdgeCount:       71
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_message_channel_pdu_init
        - rdp_send_message_channel_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:167,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:168,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:171,6'
          Dst:             rdp_message_channel_pdu_init
        - Src:             'libfreerdp/core/autodetect.c:176,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:176,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:178,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:179,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:180,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:180,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:180,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:181,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:182,9'
          Dst:             rdp_send_message_channel_pdu
    - functionName:    autodetect_request_type_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 122
      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:   'libfreerdp/core/autodetect.c:87,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    winpr_Data_Get_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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:    autodetect_get
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1096
      functionLinenumberEnd: 1099
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          47
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:1097,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:1098,2'
          Dst:             winpr_int_assert
    - functionName:    autodetect_get_state
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1090
      functionLinenumberEnd: 1092
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:1091,2'
          Dst:             winpr_int_assert
    - functionName:    autodetect_on_connect_time_auto_detect_progress_default
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          57
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:454,2'
          Dst:             winpr_int_assert
    - functionName:    autodetect_on_connect_time_auto_detect_begin_default
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          61
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:442,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:443,2'
          Dst:             winpr_int_assert
    - functionName:    autodetect_send_netchar_result
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         312
      ICount:          778
      EdgeCount:       312
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_message_channel_pdu_init
        - rdp_send_message_channel_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/autodetect.c:397,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:387,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:388,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:390,6'
          Dst:             rdp_message_channel_pdu_init
        - Src:             'libfreerdp/core/autodetect.c:395,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:395,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:400,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:401,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:402,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:402,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:402,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:403,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:404,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:405,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:405,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:405,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:406,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:406,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:406,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/autodetect.c:407,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:407,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:407,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/autodetect.c:410,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:411,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:412,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:412,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:412,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:413,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:414,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:415,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:415,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:415,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:416,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:416,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:416,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/autodetect.c:417,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:417,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:417,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/autodetect.c:420,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:421,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:422,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:422,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:422,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:423,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:424,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:425,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:425,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:425,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:426,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:426,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:426,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/autodetect.c:427,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:427,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:427,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/autodetect.c:428,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:428,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:428,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/autodetect.c:431,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:435,9'
          Dst:             rdp_send_message_channel_pdu
    - functionName:    autodetect_send_bandwidth_measure_stop
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         114
      ICount:          381
      EdgeCount:       123
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Pointer
        - Stream_Release
        - Stream_Seek
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_state
        - rdp_message_channel_pdu_init
        - rdp_send_message_channel_pdu
        - winpr_RAND
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:270,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:271,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:273,6'
          Dst:             rdp_message_channel_pdu_init
        - Src:             'libfreerdp/core/autodetect.c:277,6'
          Dst:             freerdp_get_state
        - Src:             'libfreerdp/core/autodetect.c:285,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:285,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:289,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:289,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:289,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:292,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:293,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:293,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:293,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:294,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:294,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:294,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:298,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:298,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:298,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:302,9'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/autodetect.c:304,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:304,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:306,5'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/autodetect.c:311,19'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/autodetect.c:311,8'
          Dst:             winpr_RAND
        - Src:             'libfreerdp/core/autodetect.c:313,5'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/autodetect.c:316,4'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/autodetect.c:320,9'
          Dst:             rdp_send_message_channel_pdu
    - functionName:    autodetect_send_bandwidth_measure_payload
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         100
      ICount:          291
      EdgeCount:       105
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Pointer
        - Stream_Release
        - Stream_Seek
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_state
        - rdp_message_channel_pdu_init
        - rdp_send_message_channel_pdu
        - winpr_RAND
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:224,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:225,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:227,2'
          Dst:             freerdp_get_state
        - Src:             'libfreerdp/core/autodetect.c:227,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:229,6'
          Dst:             rdp_message_channel_pdu_init
        - Src:             'libfreerdp/core/autodetect.c:233,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:233,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:238,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/autodetect.c:240,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:240,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:242,3'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/autodetect.c:246,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:247,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:248,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:248,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:248,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:249,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:250,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:250,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:250,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:252,17'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/autodetect.c:252,6'
          Dst:             winpr_RAND
        - Src:             'libfreerdp/core/autodetect.c:254,3'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/autodetect.c:257,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/autodetect.c:258,9'
          Dst:             rdp_send_message_channel_pdu
    - functionName:    autodetect_send_bandwidth_measure_start
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         76
      ICount:          214
      EdgeCount:       79
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_state
        - rdp_message_channel_pdu_init
        - rdp_send_message_channel_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:194,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:195,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:197,6'
          Dst:             rdp_message_channel_pdu_init
        - Src:             'libfreerdp/core/autodetect.c:201,6'
          Dst:             freerdp_get_state
        - Src:             'libfreerdp/core/autodetect.c:206,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:206,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:208,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:209,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:210,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:210,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:210,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:211,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:211,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:211,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:212,9'
          Dst:             rdp_send_message_channel_pdu
    - functionName:    autodetect_send_rtt_measure_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         76
      ICount:          216
      EdgeCount:       79
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_get_state
        - rdp_message_channel_pdu_init
        - rdp_send_message_channel_pdu
        - winpr_GetTickCount64
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:140,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:141,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:143,6'
          Dst:             rdp_message_channel_pdu_init
        - Src:             'libfreerdp/core/autodetect.c:147,6'
          Dst:             freerdp_get_state
        - Src:             'libfreerdp/core/autodetect.c:152,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:152,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:153,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:154,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/autodetect.c:155,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:155,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:155,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:156,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:156,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:156,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/autodetect.c:157,36'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/autodetect.c:158,9'
          Dst:             rdp_send_message_channel_pdu
    - functionName:    autodetect_register_server_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1071
      functionLinenumberEnd: 1087
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:1072,2'
          Dst:             winpr_int_assert
    - functionName:    autodetect_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1066
      functionLinenumberEnd: 1068
      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:    autodetect_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1055
      functionLinenumberEnd: 1063
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Get
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:1056,46'
          Dst:             calloc
        - Src:             'libfreerdp/core/autodetect.c:1060,20'
          Dst:             WLog_Get
    - functionName:    autodetect_on_connect_time_auto_detect_progress
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1047
      functionLinenumberEnd: 1052
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          52
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:1048,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:1049,2'
          Dst:             winpr_int_assert
    - functionName:    autodetect_on_connect_time_auto_detect_begin
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1039
      functionLinenumberEnd: 1044
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          52
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:1040,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:1041,2'
          Dst:             winpr_int_assert
    - functionName:    autodetect_recv_netchar_sync
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 683
      functionLinenumberEnd: 716
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          218
      EdgeCount:       66
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:688,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:689,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:690,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:694,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:694,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:699,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/autodetect.c:703,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/autodetect.c:704,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/autodetect.c:706,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:706,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:711,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/autodetect.c:714,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:714,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    autodetect_recv_bandwidth_measure_results
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 650
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          219
      EdgeCount:       66
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:655,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:656,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:657,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:661,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:661,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:667,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:667,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:668,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/autodetect.c:670,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/autodetect.c:671,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/autodetect.c:673,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/autodetect.c:677,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:677,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    autodetect_recv_rtt_measure_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 516
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          235
      EdgeCount:       65
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - winpr_GetTickCount64
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:492,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:493,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:497,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:497,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:503,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:503,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:505,14'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/autodetect.c:505,14'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/autodetect.c:511,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/autodetect.c:514,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:514,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    autodetect_recv_response_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 1036
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         95
      ICount:          433
      EdgeCount:       107
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - autodetect_header_type_string
        - autodetect_recv_bandwidth_measure_results
        - autodetect_recv_netchar_sync
        - autodetect_recv_rtt_measure_response
        - autodetect_request_type_to_string_buffer
        - freerdp_settings_get_bool
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/autodetect.c:998,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:934,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:935,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:936,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:939,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:941,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/autodetect.c:944,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/autodetect.c:945,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/autodetect.c:946,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/autodetect.c:947,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/autodetect.c:949,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:952,28'
          Dst:             autodetect_request_type_to_string_buffer
        - Src:             'libfreerdp/core/autodetect.c:956,7'
          Dst:             autodetect_header_type_string
        - Src:             'libfreerdp/core/autodetect.c:958,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:958,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:965,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/autodetect.c:969,28'
          Dst:             autodetect_request_type_to_string_buffer
        - Src:             'libfreerdp/core/autodetect.c:972,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:972,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:982,28'
          Dst:             autodetect_request_type_to_string_buffer
        - Src:             'libfreerdp/core/autodetect.c:986,7'
          Dst:             autodetect_header_type_string
        - Src:             'libfreerdp/core/autodetect.c:987,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:987,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:994,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/autodetect.c:1003,8'
          Dst:             autodetect_recv_rtt_measure_response
        - Src:             'libfreerdp/core/autodetect.c:1009,14'
          Dst:             autodetect_recv_bandwidth_measure_results
        - Src:             'libfreerdp/core/autodetect.c:1015,14'
          Dst:             autodetect_recv_netchar_sync
        - Src:             'libfreerdp/core/autodetect.c:1019,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:1019,4'
          Dst:             WLog_PrintTextMessage
    - 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:    4
      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:    6
      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:    autodetect_request_type_to_string_buffer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - autodetect_request_type_to_string
        - snprintf
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:127,20'
          Dst:             autodetect_request_type_to_string
        - Src:             'libfreerdp/core/autodetect.c:128,8'
          Dst:             snprintf
    - functionName:    autodetect_header_type_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - char
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          46
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached:
        - snprintf
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/core/autodetect.c:68,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:81,8'
          Dst:             snprintf
    - functionName:    autodetect_recv_netchar_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 720
      functionLinenumberEnd: 802
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         100
      ICount:          391
      EdgeCount:       111
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/autodetect.c:730,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:726,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:727,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:728,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:737,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:737,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:742,9'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/autodetect.c:746,4'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/autodetect.c:747,4'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/autodetect.c:755,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:755,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:760,9'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/autodetect.c:764,4'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/autodetect.c:765,4'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/autodetect.c:773,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:773,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:778,9'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/autodetect.c:782,4'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/autodetect.c:783,4'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/autodetect.c:784,4'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/autodetect.c:788,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:792,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:792,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:797,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/autodetect.c:800,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:800,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    autodetect_recv_bandwidth_measure_stop
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 645
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          261
      EdgeCount:       68
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - autodetect_send_bandwidth_measure_results
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:592,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:593,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:594,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:600,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:600,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:606,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/autodetect.c:609,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/autodetect.c:615,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:615,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:624,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/autodetect.c:626,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/autodetect.c:628,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:628,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:643,9'
          Dst:             autodetect_send_bandwidth_measure_results
    - functionName:    autodetect_recv_bandwidth_measure_payload
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 554
      functionLinenumberEnd: 583
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          172
      EdgeCount:       49
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:557,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:558,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:559,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:563,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:563,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:569,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/autodetect.c:572,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/autodetect.c:573,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/autodetect.c:575,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/autodetect.c:577,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:577,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    autodetect_recv_bandwidth_measure_start
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 548
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          147
      EdgeCount:       45
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_GetTickCount64
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:523,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:524,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:525,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:529,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:529,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:535,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:535,2'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/autodetect.c:535,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:538,42'
          Dst:             winpr_GetTickCount64
    - functionName:    autodetect_recv_rtt_measure_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 483
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          129
      EdgeCount:       41
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - autodetect_send_rtt_measure_response
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:468,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:469,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:470,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:474,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:474,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:480,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:480,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:482,9'
          Dst:             autodetect_send_rtt_measure_response
    - functionName:    autodetect_recv_request_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/autodetect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 806
      functionLinenumberEnd: 925
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         97
      ICount:          452
      EdgeCount:       108
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - autodetect_header_type_string
        - autodetect_recv_bandwidth_measure_payload
        - autodetect_recv_bandwidth_measure_start
        - autodetect_recv_bandwidth_measure_stop
        - autodetect_recv_netchar_request
        - autodetect_recv_rtt_measure_request
        - autodetect_request_type_to_string_buffer
        - freerdp_settings_get_bool
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/autodetect.c:875,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/autodetect.c:811,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:812,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:815,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/autodetect.c:817,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/autodetect.c:820,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/autodetect.c:821,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/autodetect.c:822,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/autodetect.c:823,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/autodetect.c:825,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:828,32'
          Dst:             autodetect_request_type_to_string_buffer
        - Src:             'libfreerdp/core/autodetect.c:833,7'
          Dst:             autodetect_header_type_string
        - Src:             'libfreerdp/core/autodetect.c:835,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:835,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:842,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/autodetect.c:845,32'
          Dst:             autodetect_request_type_to_string_buffer
        - Src:             'libfreerdp/core/autodetect.c:848,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:848,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:858,32'
          Dst:             autodetect_request_type_to_string_buffer
        - Src:             'libfreerdp/core/autodetect.c:862,7'
          Dst:             autodetect_header_type_string
        - Src:             'libfreerdp/core/autodetect.c:864,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:864,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/autodetect.c:871,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/autodetect.c:881,8'
          Dst:             autodetect_recv_rtt_measure_request
        - Src:             'libfreerdp/core/autodetect.c:888,14'
          Dst:             autodetect_recv_bandwidth_measure_start
        - Src:             'libfreerdp/core/autodetect.c:894,14'
          Dst:             autodetect_recv_bandwidth_measure_payload
        - Src:             'libfreerdp/core/autodetect.c:903,8'
          Dst:             autodetect_recv_bandwidth_measure_stop
        - Src:             'libfreerdp/core/autodetect.c:910,14'
          Dst:             autodetect_recv_netchar_request
        - Src:             'libfreerdp/core/autodetect.c:914,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/autodetect.c:914,4'
          Dst:             WLog_PrintTextMessage
    - 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_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:    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:    2
      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:    heartbeat_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/heartbeat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 93
      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:    heartbeat_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/heartbeat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/heartbeat.c:81,43'
          Dst:             calloc
    - 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:    3
      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:    freerdp_heartbeat_send_heartbeat_pdu
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/heartbeat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          162
      EdgeCount:       49
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Seek_UINT8
        - Stream_Write_UINT8_unchecked
        - WLog_Print_dbg_tag
        - rdp_message_channel_pdu_init
        - rdp_send_message_channel_pdu
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/heartbeat.c:62,15'
          Dst:             rdp_message_channel_pdu_init
        - Src:             'libfreerdp/core/heartbeat.c:67,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/heartbeat.c:68,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/heartbeat.c:68,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/heartbeat.c:68,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/heartbeat.c:69,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/heartbeat.c:69,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/heartbeat.c:69,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/heartbeat.c:70,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/heartbeat.c:70,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/heartbeat.c:70,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/heartbeat.c:72,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/heartbeat.c:76,10'
          Dst:             rdp_send_message_channel_pdu
    - functionName:    Stream_Seek_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1199
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1200,3'
          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:    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:    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:    3
      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:    rdp_recv_heartbeat_packet
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/heartbeat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          164
      EdgeCount:       42
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek_UINT8
        - WLog_Print_dbg_tag
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/heartbeat.c:31,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/heartbeat.c:32,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/heartbeat.c:33,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/heartbeat.c:35,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/heartbeat.c:38,2'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/heartbeat.c:39,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/heartbeat.c:40,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/heartbeat.c:41,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/heartbeat.c:43,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/heartbeat.c:47,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/heartbeat.c:51,3'
          Dst:             WLog_Print_dbg_tag
    - 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_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_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_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:    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:    1
      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_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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1242,3'
          Dst:             Stream_Fill
    - 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:    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_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:    multitransport_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/multitransport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 241
      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:    multitransport_no_udp
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/multitransport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - multitransport_client_send_response
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/multitransport.c:198,9'
          Dst:             multitransport_client_send_response
    - functionName:    multitransport_client_send_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/multitransport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          135
      EdgeCount:       44
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Release
        - Stream_Write_INT32_unchecked
        - Stream_Write_UINT32_unchecked
        - rdp_message_channel_pdu_init
        - rdp_send_message_channel_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/multitransport.c:144,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:147,15'
          Dst:             rdp_message_channel_pdu_init
        - Src:             'libfreerdp/core/multitransport.c:151,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/multitransport.c:153,3'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/multitransport.c:157,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:157,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:157,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/multitransport.c:162,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:162,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:162,2'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/multitransport.c:163,9'
          Dst:             rdp_send_message_channel_pdu
    - 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:    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:    1
      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:    multitransport_server_handle_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/multitransport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - rdp_server_transition_to_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/multitransport.c:208,7'
          Dst:             rdp_server_transition_to_state
    - functionName:    multitransport_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/multitransport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          83
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - freerdp_settings_get_bool
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/multitransport.c:216,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:219,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:221,29'
          Dst:             calloc
        - Src:             'libfreerdp/core/multitransport.c:225,6'
          Dst:             freerdp_settings_get_bool
    - functionName:    multitransport_recv_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/multitransport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          139
      EdgeCount:       42
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/multitransport.c:168,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:169,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:172,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:174,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/multitransport.c:176,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/multitransport.c:180,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/multitransport.c:186,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/multitransport.c:187,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/multitransport.c:190,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:    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:    multitransport_request_send
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/multitransport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          144
      EdgeCount:       44
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Release
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Zero
        - rdp_message_channel_pdu_init
        - rdp_send_message_channel_pdu
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/multitransport.c:99,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:101,15'
          Dst:             rdp_message_channel_pdu_init
        - Src:             'libfreerdp/core/multitransport.c:105,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/multitransport.c:107,3'
          Dst:             Stream_Release
        - Src:             'libfreerdp/core/multitransport.c:111,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:111,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:111,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/multitransport.c:112,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:112,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:112,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/multitransport.c:113,2'
          Dst:             Stream_Zero
        - Src:             'libfreerdp/core/multitransport.c:114,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/multitransport.c:116,9'
          Dst:             rdp_send_message_channel_pdu
    - functionName:    multitransport_server_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/multitransport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          76
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - multitransport_request_send
        - winpr_RAND
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/multitransport.c:121,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:129,7'
          Dst:             winpr_RAND
        - Src:             'libfreerdp/core/multitransport.c:132,10'
          Dst:             multitransport_request_send
        - Src:             'libfreerdp/core/multitransport.c:138,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,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:    multitransport_recv_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/multitransport.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          144
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_GetRemainingLength
        - Stream_SafeSeekEx
        - Stream_Seek
        - WLog_Print_dbg_tag
        - freerdp_settings_get_bool
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/multitransport.c:53,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/multitransport.c:56,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/multitransport.c:58,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/multitransport.c:62,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/multitransport.c:70,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/multitransport.c:71,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/multitransport.c:72,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/multitransport.c:73,11'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/core/multitransport.c:74,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/multitransport.c:85,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/multitransport.c:85,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/multitransport.c:88,8'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/multitransport.c:88,8'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/multitransport.c:92,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:    8
      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_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_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:    8
      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:    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:    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:    rdp_write_system_time
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         124
      ICount:          356
      EdgeCount:       125
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timezone.c:166,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:167,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/timezone.c:170,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:170,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:170,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/timezone.c:171,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:171,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:171,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/timezone.c:172,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:172,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:172,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/timezone.c:173,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:173,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:173,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/timezone.c:174,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:174,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:174,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/timezone.c:175,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:175,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:175,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/timezone.c:176,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:176,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:176,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/timezone.c:177,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:177,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:177,2'
          Dst:             Stream_Write_UINT16_unchecked
    - 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_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:    3
      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:    rdp_write_client_time_zone
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         64
      ICount:          221
      EdgeCount:       70
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_INT32_unchecked
        - freerdp_settings_get_pointer_array
        - rdp_write_system_time
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timezone.c:230,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:232,6'
          Dst:             freerdp_settings_get_pointer_array
        - Src:             'libfreerdp/core/timezone.c:238,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/timezone.c:246,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:246,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:246,2'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/timezone.c:248,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/timezone.c:250,7'
          Dst:             rdp_write_system_time
        - Src:             'libfreerdp/core/timezone.c:255,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/timezone.c:263,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:263,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:263,2'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/timezone.c:266,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/timezone.c:268,7'
          Dst:             rdp_write_system_time
        - Src:             'libfreerdp/core/timezone.c:272,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/timezone.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:280,2'
          Dst:             Stream_Write_INT32_unchecked
    - functionName:    rdp_read_system_time
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          100
      EdgeCount:       29
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timezone.c:141,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/timezone.c:143,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/timezone.c:146,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/timezone.c:147,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/timezone.c:148,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/timezone.c:149,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/timezone.c:150,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/timezone.c:151,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/timezone.c:152,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/timezone.c:153,2'
          Dst:             stream_read_u16_le
    - 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_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:    3
      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:    rdp_read_client_time_zone
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          115
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - freerdp_settings_get_pointer_array_writable
        - rdp_read_system_time
        - stream_read_i32_le
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/timezone.c:195,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/core/timezone.c:199,6'
          Dst:             freerdp_settings_get_pointer_array_writable
        - Src:             'libfreerdp/core/timezone.c:204,2'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/timezone.c:206,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/timezone.c:207,7'
          Dst:             rdp_read_system_time
        - Src:             'libfreerdp/core/timezone.c:209,2'
          Dst:             stream_read_i32_le
        - Src:             'libfreerdp/core/timezone.c:211,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/timezone.c:212,7'
          Dst:             rdp_read_system_time
        - Src:             'libfreerdp/core/timezone.c:214,2'
          Dst:             stream_read_i32_le
    - functionName:    transport_bio_named_uninit
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/childsession.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_NAMED_free
        - BIO_get_data
        - BIO_set_flags
        - BIO_set_init
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/childsession.c:376,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:377,43'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/childsession.c:379,2'
          Dst:             BIO_NAMED_free
        - Src:             'libfreerdp/core/childsession.c:381,2'
          Dst:             BIO_set_init
        - Src:             'libfreerdp/core/childsession.c:382,2'
          Dst:             BIO_set_flags
    - functionName:    BIO_NAMED_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/childsession.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - CloseHandle
        - ringbuffer_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/childsession.c:360,9'
          Dst:             CloseHandle
        - Src:             'libfreerdp/core/childsession.c:366,9'
          Dst:             CloseHandle
        - Src:             'libfreerdp/core/childsession.c:370,2'
          Dst:             ringbuffer_destroy
    - functionName:    doReadOp
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/childsession.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - GetLastError
        - ReadFile
        - ResetEvent
        - WLog_Print_dbg_tag
        - treatReadResult
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/childsession.c:116,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/childsession.c:108,7'
          Dst:             ResetEvent
        - Src:             'libfreerdp/core/childsession.c:112,7'
          Dst:             ReadFile
        - Src:             'libfreerdp/core/childsession.c:115,17'
          Dst:             GetLastError
        - Src:             'libfreerdp/core/childsession.c:119,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:122,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:125,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:133,9'
          Dst:             treatReadResult
    - 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:    28
      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:    treatReadResult
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/childsession.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - SetEvent
        - WLog_Print_dbg_tag
        - ringbuffer_write
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/childsession.c:87,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:91,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:95,7'
          Dst:             ringbuffer_write
        - Src:             'libfreerdp/core/childsession.c:97,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:101,9'
          Dst:             SetEvent
    - functionName:    transport_bio_named_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/childsession.c'
      linkageType:     InternalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_get_data
        - BIO_set_data
        - transport_bio_named_uninit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/childsession.c:419,2'
          Dst:             transport_bio_named_uninit
        - Src:             'libfreerdp/core/childsession.c:421,26'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/childsession.c:423,3'
          Dst:             BIO_set_data
    - functionName:    transport_bio_named_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/childsession.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          92
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - BIO_NAMED_free
        - BIO_set_data
        - BIO_set_flags
        - CreateEventA
        - calloc
        - ringbuffer_init
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/childsession.c:388,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:390,43'
          Dst:             calloc
        - Src:             'libfreerdp/core/childsession.c:394,7'
          Dst:             ringbuffer_init
        - Src:             'libfreerdp/core/childsession.c:397,19'
          Dst:             CreateEventA
        - Src:             'libfreerdp/core/childsession.c:403,2'
          Dst:             BIO_set_data
        - Src:             'libfreerdp/core/childsession.c:404,2'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/childsession.c:408,2'
          Dst:             BIO_NAMED_free
    - functionName:    transport_bio_named_ctrl
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/childsession.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          184
      EdgeCount:       41
      CyclomaticComplexity: 5
      functionsReached:
        - BIO_get_data
        - BIO_get_init
        - BIO_get_shutdown
        - BIO_set_init
        - BIO_set_shutdown
        - WLog_Print_dbg_tag
        - doReadOp
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/childsession.c:283,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/childsession.c:326,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/childsession.c:278,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:281,43'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/childsession.c:289,9'
          Dst:             BIO_get_init
        - Src:             'libfreerdp/core/childsession.c:295,4'
          Dst:             BIO_set_init
        - Src:             'libfreerdp/core/childsession.c:296,9'
          Dst:             BIO_get_init
        - Src:             'libfreerdp/core/childsession.c:301,9'
          Dst:             doReadOp
        - Src:             'libfreerdp/core/childsession.c:306,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:312,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:318,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:329,13'
          Dst:             BIO_get_shutdown
        - Src:             'libfreerdp/core/childsession.c:333,4'
          Dst:             BIO_set_shutdown
    - functionName:    transport_bio_named_gets
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/childsession.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          48
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - transport_bio_named_read
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/childsession.c:270,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:271,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:273,9'
          Dst:             transport_bio_named_read
    - functionName:    transport_bio_named_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/childsession.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         127
      ICount:          545
      EdgeCount:       151
      CyclomaticComplexity: 26
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - BIO_set_flags
        - GetLastError
        - GetOverlappedResult
        - WLog_Print_dbg_tag
        - WaitForSingleObject
        - WaitForSingleObjectEx
        - doReadOp
        - ringbuffer_commit_read_bytes
        - ringbuffer_peek
        - ringbuffer_used
        - treatReadResult
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/childsession.c:157,5'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/childsession.c:189,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/childsession.c:138,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:139,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:141,43'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/childsession.c:145,2'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/childsession.c:149,11'
          Dst:             ringbuffer_used
        - Src:             'libfreerdp/core/childsession.c:156,20'
          Dst:             WaitForSingleObjectEx
        - Src:             'libfreerdp/core/childsession.c:169,10'
          Dst:             GetOverlappedResult
        - Src:             'libfreerdp/core/childsession.c:171,6'
          Dst:             GetLastError
        - Src:             'libfreerdp/core/childsession.c:171,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:176,10'
          Dst:             treatReadResult
        - Src:             'libfreerdp/core/childsession.c:178,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:188,19'
          Dst:             WaitForSingleObject
        - Src:             'libfreerdp/core/childsession.c:194,6'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/childsession.c:197,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:202,9'
          Dst:             GetOverlappedResult
        - Src:             'libfreerdp/core/childsession.c:204,5'
          Dst:             GetLastError
        - Src:             'libfreerdp/core/childsession.c:204,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:209,9'
          Dst:             treatReadResult
        - Src:             'libfreerdp/core/childsession.c:211,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:220,18'
          Dst:             ringbuffer_used
        - Src:             'libfreerdp/core/childsession.c:228,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:228,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:228,7'
          Dst:             ringbuffer_peek
        - Src:             'libfreerdp/core/childsession.c:235,50'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:235,50'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:235,3'
          Dst:             ringbuffer_commit_read_bytes
        - Src:             'libfreerdp/core/childsession.c:237,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:240,7'
          Dst:             ringbuffer_used
        - Src:             'libfreerdp/core/childsession.c:242,30'
          Dst:             doReadOp
        - Src:             'libfreerdp/core/childsession.c:244,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:250,3'
          Dst:             BIO_set_flags
        - Src:             'libfreerdp/core/childsession.c:252,2'
          Dst:             winpr_int_assert
    - functionName:    transport_bio_named_puts
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/childsession.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          136
      EdgeCount:       43
      CyclomaticComplexity: 6
      functionsReached:
        - strnlen
        - transport_bio_named_write
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/childsession.c:258,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:259,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:262,21'
          Dst:             strnlen
        - Src:             'libfreerdp/core/childsession.c:265,45'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:265,45'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:265,9'
          Dst:             transport_bio_named_write
    - functionName:    transport_bio_named_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/childsession.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          182
      EdgeCount:       55
      CyclomaticComplexity: 8
      functionsReached:
        - BIO_clear_flags
        - BIO_get_data
        - WLog_Print_dbg_tag
        - WriteFile
        - winpr_GetTickCount64
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/childsession.c:50,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:51,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:53,43'
          Dst:             BIO_get_data
        - Src:             'libfreerdp/core/childsession.c:58,2'
          Dst:             BIO_clear_flags
        - Src:             'libfreerdp/core/childsession.c:61,23'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/childsession.c:63,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:63,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:63,6'
          Dst:             WriteFile
        - Src:             'libfreerdp/core/childsession.c:68,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:72,2'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/childsession.c:72,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:77,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:81,2'
          Dst:             winpr_int_assert
    - functionName:    BIO_set_handle
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/tcp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - BIO_ctrl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/tcp.h:75,9'
          Dst:             BIO_ctrl
    - functionName:    BIO_s_namedpipe
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/childsession.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - BIO_meth_new
        - BIO_meth_set_create
        - BIO_meth_set_ctrl
        - BIO_meth_set_destroy
        - BIO_meth_set_gets
        - BIO_meth_set_puts
        - BIO_meth_set_read
        - BIO_meth_set_write
        - transport_bio_named_ctrl
        - transport_bio_named_free
        - transport_bio_named_gets
        - transport_bio_named_new
        - transport_bio_named_puts
        - transport_bio_named_read
        - transport_bio_named_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/childsession.c:434,23'
          Dst:             BIO_meth_new
        - Src:             'libfreerdp/core/childsession.c:437,3'
          Dst:             BIO_meth_set_write
        - Src:             'libfreerdp/core/childsession.c:437,3'
          Dst:             transport_bio_named_write
        - Src:             'libfreerdp/core/childsession.c:438,3'
          Dst:             BIO_meth_set_read
        - Src:             'libfreerdp/core/childsession.c:438,3'
          Dst:             transport_bio_named_read
        - Src:             'libfreerdp/core/childsession.c:439,3'
          Dst:             BIO_meth_set_puts
        - Src:             'libfreerdp/core/childsession.c:439,3'
          Dst:             transport_bio_named_puts
        - Src:             'libfreerdp/core/childsession.c:440,3'
          Dst:             BIO_meth_set_gets
        - Src:             'libfreerdp/core/childsession.c:440,3'
          Dst:             transport_bio_named_gets
        - Src:             'libfreerdp/core/childsession.c:441,3'
          Dst:             BIO_meth_set_ctrl
        - Src:             'libfreerdp/core/childsession.c:441,3'
          Dst:             transport_bio_named_ctrl
        - Src:             'libfreerdp/core/childsession.c:442,3'
          Dst:             BIO_meth_set_create
        - Src:             'libfreerdp/core/childsession.c:442,3'
          Dst:             transport_bio_named_new
        - Src:             'libfreerdp/core/childsession.c:443,3'
          Dst:             BIO_meth_set_destroy
        - Src:             'libfreerdp/core/childsession.c:443,3'
          Dst:             transport_bio_named_free
    - functionName:    createChildSessionTransport
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/childsession.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          185
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - ConvertWCharNToUtf8
        - CreateFileW
        - FreeLibrary
        - GetProcAddress
        - LoadLibraryA
        - WLog_Print_dbg_tag
        - WTSEnableChildSessions
        - WTSIsChildSessionsEnabled
        - _wcslen
        - _wcsncmp
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/childsession.c:452,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/childsession.c:459,7'
          Dst:             WTSIsChildSessionsEnabled
        - Src:             'libfreerdp/core/childsession.c:461,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:467,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:468,8'
          Dst:             WTSEnableChildSessions
        - Src:             'libfreerdp/core/childsession.c:470,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:473,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:476,12'
          Dst:             LoadLibraryA
        - Src:             'libfreerdp/core/childsession.c:486,8'
          Dst:             GetProcAddress
        - Src:             'libfreerdp/core/childsession.c:490,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:498,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:507,8'
          Dst:             _wcsncmp
        - Src:             'libfreerdp/core/childsession.c:512,18'
          Dst:             _wcslen
        - Src:             'libfreerdp/core/childsession.c:515,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:524,9'
          Dst:             ConvertWCharNToUtf8
        - Src:             'libfreerdp/core/childsession.c:525,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:528,15'
          Dst:             CreateFileW
        - Src:             'libfreerdp/core/childsession.c:532,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/childsession.c:543,2'
          Dst:             FreeLibrary
    - functionName:    createChildSessionBio
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/childsession.c'
      linkageType:     InternalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - BIO_free_all
        - BIO_new
        - BIO_push
        - BIO_s_buffered_socket
        - BIO_s_namedpipe
        - BIO_set_handle
        - CloseHandle
        - createChildSessionTransport
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/childsession.c:550,7'
          Dst:             createChildSessionTransport
        - Src:             'libfreerdp/core/childsession.c:553,29'
          Dst:             BIO_s_namedpipe
        - Src:             'libfreerdp/core/childsession.c:553,21'
          Dst:             BIO_new
        - Src:             'libfreerdp/core/childsession.c:556,9'
          Dst:             CloseHandle
        - Src:             'libfreerdp/core/childsession.c:560,2'
          Dst:             BIO_set_handle
        - Src:             'libfreerdp/core/childsession.c:561,29'
          Dst:             BIO_s_buffered_socket
        - Src:             'libfreerdp/core/childsession.c:561,21'
          Dst:             BIO_new
        - Src:             'libfreerdp/core/childsession.c:565,3'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/core/childsession.c:569,16'
          Dst:             BIO_push
    - functionName:    socks_proxy_userpass
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 817
      functionLinenumberEnd: 880
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         94
      ICount:          409
      EdgeCount:       110
      CyclomaticComplexity: 18
      functionsReached:
        - BIO_write
        - ERR_clear_error
        - WLog_Print_dbg_tag
        - recv_socks_reply
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:818,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:819,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:823,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:829,35'
          Dst:             strnlen
        - Src:             'libfreerdp/core/proxy.c:832,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:836,35'
          Dst:             strnlen
        - Src:             'libfreerdp/core/proxy.c:839,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:849,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:849,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:853,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:853,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:857,3'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/proxy.c:858,23'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:858,23'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:859,22'
          Dst:             BIO_write
        - Src:             'libfreerdp/core/proxy.c:863,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:869,21'
          Dst:             recv_socks_reply
        - Src:             'libfreerdp/core/proxy.c:876,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:    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:    recv_socks_reply
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 813
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          184
      EdgeCount:       47
      CyclomaticComplexity: 12
      functionsReached:
        - BIO_read
        - BIO_test_flags
        - ERR_clear_error
        - Sleep
        - USleep
        - WLog_Print_dbg_tag
        - freerdp_settings_get_uint32
        - freerdp_shall_disconnect_context
        - winpr_GetTickCount64
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:752,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:755,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/proxy.c:756,23'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/proxy.c:759,3'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/proxy.c:760,12'
          Dst:             BIO_read
        - Src:             'libfreerdp/core/proxy.c:769,9'
          Dst:             freerdp_shall_disconnect_context
        - Src:             'libfreerdp/core/proxy.c:769,54'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/proxy.c:771,5'
          Dst:             USleep
        - Src:             'libfreerdp/core/proxy.c:775,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:780,23'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/proxy.c:782,8'
          Dst:             freerdp_shall_disconnect_context
        - Src:             'libfreerdp/core/proxy.c:785,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:789,4'
          Dst:             Sleep
        - Src:             'libfreerdp/core/proxy.c:794,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:802,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:808,3'
          Dst:             WLog_Print_dbg_tag
    - 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_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:    get_response_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 565
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:566,22'
          Dst:             strchr
        - Src:             'libfreerdp/core/proxy.c:568,17'
          Dst:             strchr
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - 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:    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:    9
      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:    cidr6_match
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          102
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - htonl
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:155,7'
          Dst:             memcmp
        - Src:             'libfreerdp/core/proxy.c:161,19'
          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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cidr4_match
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          60
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - htonl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:139,24'
          Dst:             htonl
    - functionName:    starts_with
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _strnicmp
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:205,22'
          Dst:             strlen
        - Src:             'libfreerdp/core/proxy.c:206,22'
          Dst:             strlen
        - Src:             'libfreerdp/core/proxy.c:209,9'
          Dst:             _strnicmp
    - functionName:    option_ends_with
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - _strnicmp
        - strlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:172,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:173,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:174,24'
          Dst:             strlen
        - Src:             'libfreerdp/core/proxy.c:175,24'
          Dst:             strlen
        - Src:             'libfreerdp/core/proxy.c:180,9'
          Dst:             _strnicmp
    - functionName:    no_proxy_match_ip
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         65
      ICount:          304
      EdgeCount:       84
      CyclomaticComplexity: 21
      functionsReached:
        - __errno_location
        - cidr4_match
        - cidr6_match
        - inet_pton
        - memcmp
        - starts_with
        - strchr
        - strncpy
        - strnlen
        - strtoul
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:214,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:215,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:220,6'
          Dst:             inet_pton
        - Src:             'libfreerdp/core/proxy.c:223,7'
          Dst:             starts_with
        - Src:             'libfreerdp/core/proxy.c:226,15'
          Dst:             strchr
        - Src:             'libfreerdp/core/proxy.c:231,7'
          Dst:             inet_pton
        - Src:             'libfreerdp/core/proxy.c:235,7'
          Dst:             memcmp
        - Src:             'libfreerdp/core/proxy.c:240,31'
          Dst:             strtoul
        - Src:             'libfreerdp/core/proxy.c:241,9'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/proxy.c:242,12'
          Dst:             cidr4_match
        - Src:             'libfreerdp/core/proxy.c:245,11'
          Dst:             inet_pton
        - Src:             'libfreerdp/core/proxy.c:251,3'
          Dst:             strncpy
        - Src:             'libfreerdp/core/proxy.c:253,22'
          Dst:             strnlen
        - Src:             'libfreerdp/core/proxy.c:261,7'
          Dst:             starts_with
        - Src:             'libfreerdp/core/proxy.c:264,15'
          Dst:             strchr
        - Src:             'libfreerdp/core/proxy.c:269,7'
          Dst:             inet_pton
        - Src:             'libfreerdp/core/proxy.c:273,7'
          Dst:             memcmp
        - Src:             'libfreerdp/core/proxy.c:278,31'
          Dst:             strtoul
        - Src:             'libfreerdp/core/proxy.c:279,9'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/proxy.c:280,12'
          Dst:             cidr6_match
    - functionName:    no_proxy_match_host
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          74
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - _stricmp
        - option_ends_with
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:188,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:189,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:192,6'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/proxy.c:200,9'
          Dst:             option_ends_with
    - functionName:    check_no_proxy
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          134
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Print_dbg_tag
        - _strdup
        - freerdp_settings_get_string
        - no_proxy_match_host
        - no_proxy_match_ip
        - strlen
        - strtok_s
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:296,15'
          Dst:             _strdup
        - Src:             'libfreerdp/core/proxy.c:301,18'
          Dst:             strtok_s
        - Src:             'libfreerdp/core/proxy.c:305,29'
          Dst:             strlen
        - Src:             'libfreerdp/core/proxy.c:310,8'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/proxy.c:311,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:313,8'
          Dst:             no_proxy_match_host
        - Src:             'libfreerdp/core/proxy.c:315,13'
          Dst:             no_proxy_match_ip
        - Src:             'libfreerdp/core/proxy.c:319,13'
          Dst:             strtok_s
    - functionName:    socks_proxy_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 884
      functionLinenumberEnd: 1005
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         111
      ICount:          594
      EdgeCount:       135
      CyclomaticComplexity: 26
      functionsReached:
        - BIO_write
        - ERR_clear_error
        - WLog_Print_dbg_tag
        - inet_pton
        - recv_socks_reply
        - socks_proxy_userpass
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/proxy.c:919,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:886,26'
          Dst:             strnlen
        - Src:             'libfreerdp/core/proxy.c:901,3'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/proxy.c:902,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:902,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:903,22'
          Dst:             BIO_write
        - Src:             'libfreerdp/core/proxy.c:907,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:914,22'
          Dst:             recv_socks_reply
        - Src:             'libfreerdp/core/proxy.c:922,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:928,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:931,10'
          Dst:             socks_proxy_userpass
        - Src:             'libfreerdp/core/proxy.c:936,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:948,7'
          Dst:             inet_pton
        - Src:             'libfreerdp/core/proxy.c:953,12'
          Dst:             inet_pton
        - Src:             'libfreerdp/core/proxy.c:961,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:961,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:968,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:976,3'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/proxy.c:977,23'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:977,23'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:978,22'
          Dst:             BIO_write
        - Src:             'libfreerdp/core/proxy.c:982,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:988,21'
          Dst:             recv_socks_reply
        - Src:             'libfreerdp/core/proxy.c:995,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:1000,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:1002,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    http_proxy_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 745
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         149
      ICount:          647
      EdgeCount:       179
      CyclomaticComplexity: 32
      functionsReached:
        - BIO_read
        - BIO_test_flags
        - BIO_write
        - ERR_clear_error
        - Sleep
        - Stream_Buffer
        - Stream_EnsureRemainingCapacity
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - Stream_Write
        - Stream_Write_UINT8_unchecked
        - USleep
        - WLog_Print_dbg_tag
        - _itoa_s
        - crypto_base64_encode
        - freerdp_settings_get_uint32
        - freerdp_shall_disconnect_context
        - get_response_header
        - snprintf
        - strchr
        - strlen
        - strncmp
        - strnlen
        - strstr
        - winpr_GetTickCount64
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:592,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:593,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:594,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:596,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/proxy.c:598,6'
          Dst:             _itoa_s
        - Src:             'libfreerdp/core/proxy.c:600,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:604,12'
          Dst:             strlen
        - Src:             'libfreerdp/core/proxy.c:605,12'
          Dst:             strnlen
        - Src:             'libfreerdp/core/proxy.c:607,6'
          Dst:             Stream_New
        - Src:             'libfreerdp/core/proxy.c:611,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/proxy.c:612,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/proxy.c:613,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/proxy.c:614,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/proxy.c:615,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/proxy.c:616,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/proxy.c:617,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/proxy.c:618,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/proxy.c:622,22'
          Dst:             snprintf
        - Src:             'libfreerdp/core/proxy.c:635,11'
          Dst:             snprintf
        - Src:             'libfreerdp/core/proxy.c:636,14'
          Dst:             crypto_base64_encode
        - Src:             'libfreerdp/core/proxy.c:638,71'
          Dst:             strlen
        - Src:             'libfreerdp/core/proxy.c:638,21'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/proxy.c:644,5'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/proxy.c:645,29'
          Dst:             strlen
        - Src:             'libfreerdp/core/proxy.c:645,5'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/proxy.c:653,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/proxy.c:656,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/proxy.c:657,2'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/proxy.c:660,22'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/proxy.c:664,35'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/proxy.c:664,53'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:664,53'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:664,12'
          Dst:             BIO_write
        - Src:             'libfreerdp/core/proxy.c:667,41'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/proxy.c:669,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:676,24'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/proxy.c:677,10'
          Dst:             strstr
        - Src:             'libfreerdp/core/proxy.c:681,5'
          Dst:             get_response_header
        - Src:             'libfreerdp/core/proxy.c:681,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:686,4'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/core/proxy.c:688,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:689,13'
          Dst:             BIO_read
        - Src:             'libfreerdp/core/proxy.c:694,10'
          Dst:             freerdp_shall_disconnect_context
        - Src:             'libfreerdp/core/proxy.c:694,55'
          Dst:             BIO_test_flags
        - Src:             'libfreerdp/core/proxy.c:696,6'
          Dst:             USleep
        - Src:             'libfreerdp/core/proxy.c:700,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:705,24'
          Dst:             winpr_GetTickCount64
        - Src:             'libfreerdp/core/proxy.c:707,9'
          Dst:             freerdp_shall_disconnect_context
        - Src:             'libfreerdp/core/proxy.c:710,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:713,5'
          Dst:             Sleep
        - Src:             'libfreerdp/core/proxy.c:716,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:716,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:721,8'
          Dst:             strchr
        - Src:             'libfreerdp/core/proxy.c:730,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:732,6'
          Dst:             strnlen
        - Src:             'libfreerdp/core/proxy.c:737,6'
          Dst:             strncmp
        - Src:             'libfreerdp/core/proxy.c:742,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:743,2'
          Dst:             Stream_Free
    - functionName:    proxy_connect
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          87
      EdgeCount:       31
      CyclomaticComplexity: 17
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_settings_get_uint32
        - http_proxy_connect
        - socks_proxy_connect
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/core/proxy.c:544,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:541,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/proxy.c:544,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/proxy.c:551,11'
          Dst:             http_proxy_connect
        - Src:             'libfreerdp/core/proxy.c:555,11'
          Dst:             socks_proxy_connect
        - Src:             'libfreerdp/core/proxy.c:559,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    value_to_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          82
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - strtoll
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:121,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/core/proxy.c:122,7'
          Dst:             strtoll
        - Src:             'libfreerdp/core/proxy.c:124,6'
          Dst:             __errno_location
    - functionName:    proxy_parse_uri
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         69
      ICount:          368
      EdgeCount:       95
      CyclomaticComplexity: 28
      functionsReached:
        - WLog_Print_dbg_tag
        - _strdup
        - _stricmp
        - freerdp_settings_get_string
        - freerdp_settings_get_uint16
        - freerdp_settings_set_string
        - freerdp_settings_set_uint16
        - freerdp_settings_set_uint32
        - strchr
        - strrchr
        - strstr
        - value_to_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:376,19'
          Dst:             _strdup
        - Src:             'libfreerdp/core/proxy.c:382,13'
          Dst:             strstr
        - Src:             'libfreerdp/core/proxy.c:387,8'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/proxy.c:389,10'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/proxy.c:392,8'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/proxy.c:394,10'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/proxy.c:398,13'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/proxy.c:400,10'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/proxy.c:406,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:415,9'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/proxy.c:423,17'
          Dst:             strrchr
        - Src:             'libfreerdp/core/proxy.c:434,21'
          Dst:             strchr
        - Src:             'libfreerdp/core/proxy.c:438,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:443,9'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/proxy.c:445,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:451,9'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/proxy.c:453,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:462,13'
          Dst:             strchr
        - Src:             'libfreerdp/core/proxy.c:468,9'
          Dst:             value_to_int
        - Src:             'libfreerdp/core/proxy.c:470,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:476,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:485,8'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/proxy.c:495,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:498,8'
          Dst:             freerdp_settings_set_uint16
        - Src:             'libfreerdp/core/proxy.c:502,13'
          Dst:             strchr
        - Src:             'libfreerdp/core/proxy.c:505,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/proxy.c:509,6'
          Dst:             _stricmp
        - Src:             'libfreerdp/core/proxy.c:511,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:515,6'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/proxy.c:517,3'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/proxy.c:517,3'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/proxy.c:517,3'
          Dst:             freerdp_settings_get_uint16
        - Src:             'libfreerdp/core/proxy.c:517,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:524,3'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/proxy.c:524,3'
          Dst:             freerdp_settings_get_uint16
        - Src:             'libfreerdp/core/proxy.c:524,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:532,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    strrchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    proxy_read_environment
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          118
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - GetEnvironmentVariableA
        - WLog_Print_dbg_tag
        - _strnicmp
        - calloc
        - check_no_proxy
        - freerdp_settings_get_string
        - freerdp_settings_set_uint32
        - proxy_parse_uri
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:328,23'
          Dst:             GetEnvironmentVariableA
        - Src:             'libfreerdp/core/proxy.c:333,14'
          Dst:             calloc
        - Src:             'libfreerdp/core/proxy.c:337,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:341,6'
          Dst:             GetEnvironmentVariableA
        - Src:             'libfreerdp/core/proxy.c:343,7'
          Dst:             _strnicmp
        - Src:             'libfreerdp/core/proxy.c:345,8'
          Dst:             check_no_proxy
        - Src:             'libfreerdp/core/proxy.c:347,5'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/proxy.c:347,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:350,10'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/proxy.c:351,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/proxy.c:356,9'
          Dst:             proxy_parse_uri
        - Src:             'libfreerdp/core/proxy.c:358,5'
          Dst:             WLog_Print_dbg_tag
    - functionName:    proxy_prepare
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/proxy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          124
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - freerdp_settings_get_string
        - freerdp_settings_get_uint16
        - freerdp_settings_get_uint32
        - proxy_read_environment
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/proxy.c:86,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/proxy.c:90,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/proxy.c:91,3'
          Dst:             proxy_read_environment
        - Src:             'libfreerdp/core/proxy.c:93,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/proxy.c:94,3'
          Dst:             proxy_read_environment
        - Src:             'libfreerdp/core/proxy.c:96,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/proxy.c:97,3'
          Dst:             proxy_read_environment
        - Src:             'libfreerdp/core/proxy.c:99,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/proxy.c:100,3'
          Dst:             proxy_read_environment
        - Src:             'libfreerdp/core/proxy.c:102,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/proxy.c:104,21'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/proxy.c:105,17'
          Dst:             freerdp_settings_get_uint16
        - Src:             'libfreerdp/core/proxy.c:106,22'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/proxy.c:107,22'
          Dst:             freerdp_settings_get_string
    - functionName:    parseInt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1074
      functionLinenumberEnd: 1087
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          99
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parseKerberosDeltat
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1090
      functionLinenumberEnd: 1204
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         78
      ICount:          374
      EdgeCount:       97
      CyclomaticComplexity: 21
      functionsReached:
        - WLog_Print_dbg_tag
        - __ctype_b_loc
        - parseInt
        - strchr
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/core/credssp_auth.c:1160,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:1094,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:1095,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:1096,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:1103,8'
          Dst:             strchr
        - Src:             'libfreerdp/core/credssp_auth.c:1108,11'
          Dst:             parseInt
        - Src:             'libfreerdp/core/credssp_auth.c:1111,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:1117,11'
          Dst:             parseInt
        - Src:             'libfreerdp/core/credssp_auth.c:1120,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:1128,12'
          Dst:             parseInt
        - Src:             'libfreerdp/core/credssp_auth.c:1131,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:1140,10'
          Dst:             parseInt
        - Src:             'libfreerdp/core/credssp_auth.c:1143,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:1147,17'
          Dst:             __ctype_b_loc
        - Src:             'libfreerdp/core/credssp_auth.c:1179,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:1185,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:1194,11'
          Dst:             parseInt
        - Src:             'libfreerdp/core/credssp_auth.c:1197,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:    33
      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:    __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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    auth_get_sspi_module_from_reg
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 848
      functionLinenumberEnd: 889
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          106
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - RegCloseKey
        - RegOpenKeyExA
        - RegQueryValueExA
        - calloc
        - freerdp_getApplicatonDetailsRegKey
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:853,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:856,14'
          Dst:             freerdp_getApplicatonDetailsRegKey
        - Src:             'libfreerdp/core/credssp_auth.c:860,18'
          Dst:             RegOpenKeyExA
        - Src:             'libfreerdp/core/credssp_auth.c:866,6'
          Dst:             RegQueryValueExA
        - Src:             'libfreerdp/core/credssp_auth.c:868,3'
          Dst:             RegCloseKey
        - Src:             'libfreerdp/core/credssp_auth.c:872,24'
          Dst:             calloc
        - Src:             'libfreerdp/core/credssp_auth.c:875,3'
          Dst:             RegCloseKey
        - Src:             'libfreerdp/core/credssp_auth.c:879,6'
          Dst:             RegQueryValueExA
        - Src:             'libfreerdp/core/credssp_auth.c:882,3'
          Dst:             RegCloseKey
        - Src:             'libfreerdp/core/credssp_auth.c:887,2'
          Dst:             RegCloseKey
    - functionName:    credssp_auth_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 793
      functionLinenumberEnd: 845
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         39
      ICount:          217
      EdgeCount:       41
      CyclomaticComplexity: 4
      functionsReached:
        - credssp_auth_update_name_cache
        - sspi_FreeAuthIdentity
        - sspi_SecBufferFree
        - winpr_int_assert
      functionUses:    11
      BranchProfiles:
        - Branch String:   'libfreerdp/core/credssp_auth.c:802,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:806,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:811,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:821,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:826,2'
          Dst:             sspi_FreeAuthIdentity
        - Src:             'libfreerdp/core/credssp_auth.c:841,2'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/credssp_auth.c:842,2'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/credssp_auth.c:843,2'
          Dst:             credssp_auth_update_name_cache
    - functionName:    credssp_auth_update_name_cache
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          50
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - _strdup
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:126,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:134,20'
          Dst:             _strdup
    - functionName:    credssp_auth_tableAndContext
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 783
      functionLinenumberEnd: 790
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          65
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:784,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:785,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:786,2'
          Dst:             winpr_int_assert
    - functionName:    credssp_auth_sspi_error
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 776
      functionLinenumberEnd: 778
      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:             'libfreerdp/core/credssp_auth.c:777,2'
          Dst:             winpr_int_assert
    - functionName:    credssp_auth_trailer_size
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 764
      functionLinenumberEnd: 766
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:765,2'
          Dst:             winpr_int_assert
    - functionName:    credssp_auth_is_complete
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 758
      functionLinenumberEnd: 760
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:759,2'
          Dst:             winpr_int_assert
    - functionName:    credssp_auth_have_output_token
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 752
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:753,2'
          Dst:             winpr_int_assert
    - functionName:    credssp_auth_get_output_buffer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 746
      functionLinenumberEnd: 748
      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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:747,2'
          Dst:             winpr_int_assert
    - functionName:    credssp_auth_take_input_buffer
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 743
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - sspi_SecBufferFree
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:732,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:733,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:735,2'
          Dst:             sspi_SecBufferFree
    - functionName:    credssp_auth_revert_to_self
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 714
      functionLinenumberEnd: 728
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          83
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - GetSecurityStatusString
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:715,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:717,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:722,3'
          Dst:             GetSecurityStatusString
        - Src:             'libfreerdp/core/credssp_auth.c:722,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    credssp_auth_impersonate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 697
      functionLinenumberEnd: 711
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          83
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - GetSecurityStatusString
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:698,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:700,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:705,3'
          Dst:             GetSecurityStatusString
        - Src:             'libfreerdp/core/credssp_auth.c:705,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    credssp_auth_decrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 643
      functionLinenumberEnd: 694
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          214
      EdgeCount:       43
      CyclomaticComplexity: 5
      functionsReached:
        - GetSecurityStatusString
        - WLog_Print_dbg_tag
        - credssp_auth_state_string
        - sspi_SecBufferAlloc
        - sspi_SecBufferFree
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/core/credssp_auth.c:652,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:648,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:649,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:650,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:655,4'
          Dst:             credssp_auth_state_string
        - Src:             'libfreerdp/core/credssp_auth.c:655,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:664,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:675,7'
          Dst:             sspi_SecBufferAlloc
        - Src:             'libfreerdp/core/credssp_auth.c:680,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:685,3'
          Dst:             GetSecurityStatusString
        - Src:             'libfreerdp/core/credssp_auth.c:685,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:687,3'
          Dst:             sspi_SecBufferFree
    - functionName:    credssp_auth_state_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          58
      EdgeCount:       29
      CyclomaticComplexity: 16
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/credssp_auth.c:79,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:78,2'
          Dst:             winpr_int_assert
    - functionName:    credssp_auth_encrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 638
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          296
      EdgeCount:       52
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - credssp_auth_state_string
        - log_status_
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:
        - Branch String:   'libfreerdp/core/credssp_auth.c:589,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:585,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:586,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:587,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:592,4'
          Dst:             credssp_auth_state_string
        - Src:             'libfreerdp/core/credssp_auth.c:592,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:599,8'
          Dst:             calloc
        - Src:             'libfreerdp/core/credssp_auth.c:614,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:619,10'
          Dst:             log_status_
    - functionName:    log_status_
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          72
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - GetSecurityStatusString
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - vsnprintf
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:106,9'
          Dst:             WLog_Get
        - Src:             'libfreerdp/core/credssp_auth.c:108,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/credssp_auth.c:113,9'
          Dst:             vsnprintf
        - Src:             'libfreerdp/core/credssp_auth.c:117,25'
          Dst:             GetSecurityStatusString
        - Src:             'libfreerdp/core/credssp_auth.c:116,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    query_logged_
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          89
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - log_status_
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:421,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:422,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:423,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:427,8'
          Dst:             log_status_
    - functionName:    credssp_auth_authenticate
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 574
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         101
      ICount:          560
      EdgeCount:       118
      CyclomaticComplexity: 19
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - freerdp_settings_get_string
        - freerdp_settings_set_string
        - freerdp_settings_set_string_len
        - log_status_
        - query_logged_
        - sspi_SecBufferAlloc
        - sspi_SecBufferFree
        - strlen
        - winpr_int_assert
      functionUses:    12
      BranchProfiles:
        - Branch String:   'libfreerdp/core/credssp_auth.c:444,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:439,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:440,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:451,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:475,2'
          Dst:             sspi_SecBufferFree
        - Src:             'libfreerdp/core/credssp_auth.c:477,7'
          Dst:             sspi_SecBufferAlloc
        - Src:             'libfreerdp/core/credssp_auth.c:482,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:489,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:496,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:497,22'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/credssp_auth.c:500,23'
          Dst:             strlen
        - Src:             'libfreerdp/core/credssp_auth.c:507,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:507,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:508,11'
          Dst:             log_status_
        - Src:             'libfreerdp/core/credssp_auth.c:517,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:523,9'
          Dst:             query_logged_
        - Src:             'libfreerdp/core/credssp_auth.c:524,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:530,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/credssp_auth.c:534,29'
          Dst:             query_logged_
        - Src:             'libfreerdp/core/credssp_auth.c:538,28'
          Dst:             calloc
        - Src:             'libfreerdp/core/credssp_auth.c:542,14'
          Dst:             query_logged_
        - Src:             'libfreerdp/core/credssp_auth.c:550,10'
          Dst:             freerdp_settings_set_string_len
        - Src:             'libfreerdp/core/credssp_auth.c:562,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:569,9'
          Dst:             log_status_
    - functionName:    credssp_auth_set_flags
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:374,2'
          Dst:             winpr_int_assert
    - functionName:    credssp_auth_setup_server
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         38
      ICount:          157
      EdgeCount:       42
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - credssp_auth_setup_auth_data
        - log_status_
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:345,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:346,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:348,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:353,3'
          Dst:             credssp_auth_setup_auth_data
        - Src:             'libfreerdp/core/credssp_auth.c:357,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:362,10'
          Dst:             log_status_
        - Src:             'libfreerdp/core/credssp_auth.c:365,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    credssp_auth_setup_auth_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          146
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - _wcslen
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:193,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:211,22'
          Dst:             _wcslen
    - functionName:    credssp_auth_client_init_cred_attributes
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          178
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - ConvertUtf8ToWChar
        - WLog_Print_dbg_tag
        - calloc
        - utils_str_is_empty
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:227,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:229,7'
          Dst:             utils_str_is_empty
        - Src:             'libfreerdp/core/credssp_auth.c:234,14'
          Dst:             ConvertUtf8ToWChar
        - Src:             'libfreerdp/core/credssp_auth.c:243,50'
          Dst:             calloc
        - Src:             'libfreerdp/core/credssp_auth.c:251,7'
          Dst:             ConvertUtf8ToWChar
        - Src:             'libfreerdp/core/credssp_auth.c:276,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    credssp_auth_set_spn
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1040
      functionLinenumberEnd: 1071
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          98
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - _strdup
        - calloc
        - snprintf
        - strlen
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:1044,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:1050,9'
          Dst:             _strdup
        - Src:             'libfreerdp/core/credssp_auth.c:1053,12'
          Dst:             strlen
        - Src:             'libfreerdp/core/credssp_auth.c:1053,30'
          Dst:             strlen
        - Src:             'libfreerdp/core/credssp_auth.c:1054,9'
          Dst:             calloc
        - Src:             'libfreerdp/core/credssp_auth.c:1058,9'
          Dst:             snprintf
    - functionName:    credssp_auth_setup_client
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          200
      EdgeCount:       54
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - _strdup
        - credssp_auth_client_init_cred_attributes
        - credssp_auth_set_spn
        - credssp_auth_setup_auth_data
        - log_status_
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:293,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:294,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:295,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:297,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:300,7'
          Dst:             credssp_auth_set_spn
        - Src:             'libfreerdp/core/credssp_auth.c:305,3'
          Dst:             credssp_auth_setup_auth_data
        - Src:             'libfreerdp/core/credssp_auth.c:309,48'
          Dst:             _strdup
        - Src:             'libfreerdp/core/credssp_auth.c:312,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:320,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:326,10'
          Dst:             log_status_
        - Src:             'libfreerdp/core/credssp_auth.c:328,7'
          Dst:             credssp_auth_client_init_cred_attributes
        - Src:             'libfreerdp/core/credssp_auth.c:330,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:335,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    credssp_auth_setup_identity
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 936
      functionLinenumberEnd: 1037
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         71
      ICount:          396
      EdgeCount:       90
      CyclomaticComplexity: 21
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - WLog_Print_dbg_tag
        - _strdup
        - parseKerberosDeltat
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:942,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:943,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:947,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:953,3'
          Dst:             parseKerberosDeltat
        - Src:             'libfreerdp/core/credssp_auth.c:955,3'
          Dst:             parseKerberosDeltat
        - Src:             'libfreerdp/core/credssp_auth.c:957,3'
          Dst:             parseKerberosDeltat
        - Src:             'libfreerdp/core/credssp_auth.c:962,26'
          Dst:             _strdup
        - Src:             'libfreerdp/core/credssp_auth.c:965,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:972,25'
          Dst:             _strdup
        - Src:             'libfreerdp/core/credssp_auth.c:975,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:982,26'
          Dst:             _strdup
        - Src:             'libfreerdp/core/credssp_auth.c:985,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:992,30'
          Dst:             _strdup
        - Src:             'libfreerdp/core/credssp_auth.c:995,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:1002,37'
          Dst:             _strdup
        - Src:             'libfreerdp/core/credssp_auth.c:1005,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:1012,28'
          Dst:             _strdup
        - Src:             'libfreerdp/core/credssp_auth.c:1015,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:1028,24'
          Dst:             ConvertUtf8ToWCharAlloc
    - functionName:    credssp_auth_pkg_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 770
      functionLinenumberEnd: 772
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          41
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:771,2'
          Dst:             winpr_int_assert
    - functionName:    auth_resolve_sspi_table
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 892
      functionLinenumberEnd: 933
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          139
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - GetProcAddress
        - InitSecurityInterfaceExA
        - LoadLibraryX
        - WLog_Print_dbg_tag
        - auth_get_sspi_module_from_reg
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:895,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:898,3'
          Dst:             auth_get_sspi_module_from_reg
        - Src:             'libfreerdp/core/credssp_auth.c:909,19'
          Dst:             LoadLibraryX
        - Src:             'libfreerdp/core/credssp_auth.c:913,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:918,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:921,7'
          Dst:             GetProcAddress
        - Src:             'libfreerdp/core/credssp_auth.c:924,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:932,9'
          Dst:             InitSecurityInterfaceExA
    - functionName:    credssp_auth_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          175
      EdgeCount:       43
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - auth_resolve_sspi_table
        - credssp_auth_pkg_name
        - credssp_auth_setup_identity
        - credssp_auth_update_name_cache
        - log_status_
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:151,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:152,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:155,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:157,7'
          Dst:             credssp_auth_update_name_cache
        - Src:             'libfreerdp/core/credssp_auth.c:160,16'
          Dst:             auth_resolve_sspi_table
        - Src:             'libfreerdp/core/credssp_auth.c:163,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:168,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:171,10'
          Dst:             credssp_auth_pkg_name
        - Src:             'libfreerdp/core/credssp_auth.c:171,10'
          Dst:             log_status_
        - Src:             'libfreerdp/core/credssp_auth.c:174,7'
          Dst:             credssp_auth_update_name_cache
        - Src:             'libfreerdp/core/credssp_auth.c:177,2'
          Dst:             credssp_auth_pkg_name
        - Src:             'libfreerdp/core/credssp_auth.c:177,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/core/credssp_auth.c:181,7'
          Dst:             credssp_auth_setup_identity
    - functionName:    credssp_auth_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/credssp_auth.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          44
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/credssp_auth.c:140,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/credssp_auth.c:141,25'
          Dst:             calloc
    - functionName:    freerdp_image_copy_generic
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 912
      functionLinenumberEnd: 951
      functionDepth:   0
      returnType:      int
      argCount:        17
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          222
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - FreeRDPConvertColor
        - FreeRDPReadColor_int
        - FreeRDPWriteColorIgnoreAlpha_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:924,18'
          Dst:             FreeRDPReadColor_int
        - Src:             'libfreerdp/codec/color.c:926,21'
          Dst:             FreeRDPConvertColor
        - Src:             'libfreerdp/codec/color.c:927,8'
          Dst:             FreeRDPWriteColorIgnoreAlpha_int
        - Src:             'libfreerdp/codec/color.c:932,12'
          Dst:             FreeRDPReadColor_int
        - Src:             'libfreerdp/codec/color.c:935,10'
          Dst:             FreeRDPWriteColorIgnoreAlpha_int
        - Src:             'libfreerdp/codec/color.c:942,16'
          Dst:             FreeRDPConvertColor
        - Src:             'libfreerdp/codec/color.c:943,10'
          Dst:             FreeRDPWriteColorIgnoreAlpha_int
    - functionName:    FreeRDPReadColor_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          151
      EdgeCount:       22
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPColorHasAlpha
        - FreeRDPGetBitsPerPixel
        - FreeRDPGetColorFormatName
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    11
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/color.h:117,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/color.h:115,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.h:117,10'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.h:135,9'
          Dst:             FreeRDPColorHasAlpha
        - Src:             'libfreerdp/codec/color.h:147,4'
          Dst:             FreeRDPGetColorFormatName
        - Src:             'libfreerdp/codec/color.h:147,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDPConvertColor
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetColor
        - FreeRDPSplitColor
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:277,3'
          Dst:             FreeRDPSplitColor
        - Src:             'include/freerdp/codec/color.h:278,10'
          Dst:             FreeRDPGetColor
    - functionName:    FreeRDPWriteColorIgnoreAlpha_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          113
      EdgeCount:       41
      CyclomaticComplexity: 22
      functionsReached:
        - FreeRDPWriteColor_int
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/color.h:87,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/color.h:86,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.h:95,11'
          Dst:             FreeRDPWriteColor_int
        - Src:             'libfreerdp/codec/color.h:103,11'
          Dst:             FreeRDPWriteColor_int
        - Src:             'libfreerdp/codec/color.h:106,11'
          Dst:             FreeRDPWriteColor_int
    - functionName:    FreeRDPWriteColor_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          146
      EdgeCount:       20
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPColorHasAlpha
        - FreeRDPGetBitsPerPixel
        - FreeRDPGetColorFormatName
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    14
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/color.h:42,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/color.h:41,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.h:42,10'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.h:63,9'
          Dst:             FreeRDPColorHasAlpha
        - Src:             'libfreerdp/codec/color.h:75,4'
          Dst:             FreeRDPGetColorFormatName
        - Src:             'libfreerdp/codec/color.h:75,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FreeRDPColorHasAlpha
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FreeRDPGetColorFormatName
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1406
      functionLinenumberEnd: 1439
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          122
      EdgeCount:       46
      CyclomaticComplexity: 24
      functionsReached: []
      functionUses:    10
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/color.c:1411,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:    12
      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:    FreeRDPSplitColor
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1478
      functionLinenumberEnd: 1857
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         310
      ICount:          1634
      EdgeCount:       404
      CyclomaticComplexity: 96
      functionsReached:
        - FreeRDPGetColorFormatName
        - FreeRDPSplitColor
        - WLog_Print_dbg_tag
      functionUses:    32
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/color.c:1481,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:1804,5'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/codec/color.c:1854,4'
          Dst:             FreeRDPGetColorFormatName
        - Src:             'libfreerdp/codec/color.c:1854,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDPGetColor
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1875
      functionLinenumberEnd: 1964
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          385
      EdgeCount:       55
      CyclomaticComplexity: 29
      functionsReached:
        - FreeRDPGetColorFormatName
        - WLog_Print_dbg_tag
      functionUses:    30
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/color.c:1882,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:1961,4'
          Dst:             FreeRDPGetColorFormatName
        - Src:             'libfreerdp/codec/color.c:1961,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_image_copy_bgrx32_bgrx32
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 884
      functionLinenumberEnd: 904
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          157
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_image_copy_bgr24_bgrx32
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 854
      functionLinenumberEnd: 874
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          157
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_image_inverted_pointer_color
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetColor
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:362,9'
          Dst:             FreeRDPGetColor
    - functionName:    freerdp_image_copy_from_pointer_data_xbpp
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 622
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      int
      argCount:        13
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          494
      EdgeCount:       93
      CyclomaticComplexity: 25
      functionsReached:
        - FreeRDPConvertColor
        - FreeRDPGetBitsPerPixel
        - FreeRDPGetBytesPerPixel
        - FreeRDPReadColor_int
        - FreeRDPWriteColor_int
        - WLog_Print_dbg_tag
        - freerdp_image_inverted_pointer_color
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:631,20'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.c:646,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/color.c:665,47'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:704,16'
          Dst:             FreeRDPReadColor_int
        - Src:             'libfreerdp/codec/color.c:709,16'
          Dst:             FreeRDPReadColor_int
        - Src:             'libfreerdp/codec/color.c:719,16'
          Dst:             FreeRDPReadColor_int
        - Src:             'libfreerdp/codec/color.c:735,15'
          Dst:             FreeRDPConvertColor
        - Src:             'libfreerdp/codec/color.c:743,17'
          Dst:             freerdp_image_inverted_pointer_color
        - Src:             'libfreerdp/codec/color.c:746,12'
          Dst:             FreeRDPConvertColor
        - Src:             'libfreerdp/codec/color.c:747,9'
          Dst:             FreeRDPWriteColor_int
        - Src:             'libfreerdp/codec/color.c:749,17'
          Dst:             FreeRDPGetBytesPerPixel
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    36
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - functionName:    freerdp_image_copy_from_pointer_data_1bpp
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 534
      functionLinenumberEnd: 615
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          423
      EdgeCount:       80
      CyclomaticComplexity: 22
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - FreeRDPGetColor
        - FreeRDPWriteColor_int
        - freerdp_image_inverted_pointer_color
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:566,47'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:600,13'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/codec/color.c:602,13'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/codec/color.c:604,13'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/codec/color.c:606,13'
          Dst:             freerdp_image_inverted_pointer_color
        - Src:             'libfreerdp/codec/color.c:608,9'
          Dst:             FreeRDPWriteColor_int
        - Src:             'libfreerdp/codec/color.c:610,17'
          Dst:             FreeRDPGetBytesPerPixel
    - functionName:    FreeRDPReadColor
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1870
      functionLinenumberEnd: 1871
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPReadColor_int
      functionUses:    29
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:1871,9'
          Dst:             FreeRDPReadColor_int
    - functionName:    FreeRDPWriteColor
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1865
      functionLinenumberEnd: 1866
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPWriteColor_int
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:1866,9'
          Dst:             FreeRDPWriteColor_int
    - functionName:    FreeRDPWriteColorIgnoreAlpha
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1860
      functionLinenumberEnd: 1861
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPWriteColorIgnoreAlpha_int
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:1861,9'
          Dst:             FreeRDPWriteColorIgnoreAlpha_int
    - functionName:    FreeRDPGetColorFromatFromName
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1442
      functionLinenumberEnd: 1474
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         48
      ICount:          238
      EdgeCount:       70
      CyclomaticComplexity: 24
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:1450,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1451,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1452,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1453,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1454,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1455,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1456,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1457,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1458,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1459,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1460,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1461,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1462,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1463,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1464,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1465,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1466,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1467,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1468,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1469,2'
          Dst:             strcmp
        - Src:             'libfreerdp/codec/color.c:1470,2'
          Dst:             strcmp
    - functionName:    FreeRDPAreColorFormatsEqualNoAlpha
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1401
      functionLinenumberEnd: 1402
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPAreColorFormatsEqualNoAlpha_int
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:1402,9'
          Dst:             FreeRDPAreColorFormatsEqualNoAlpha_int
    - functionName:    FreeRDPAreColorFormatsEqualNoAlpha_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_image_scale
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1287
      functionLinenumberEnd: 1398
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          219
      EdgeCount:       50
      CyclomaticComplexity: 8
      functionsReached:
        - FreeRDPGetBitsPerPixel
        - FreeRDPGetBytesPerPixel
        - WLog_Print_dbg_tag
        - freerdp_image_copy_no_overlap
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:1289,6'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.c:1291,6'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.c:1294,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1295,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1297,36'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1300,36'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1302,2'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1302,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1303,2'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1303,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1313,10'
          Dst:             freerdp_image_copy_no_overlap
        - Src:             'libfreerdp/codec/color.c:1394,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_image_copy_no_overlap
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1971
      functionLinenumberEnd: 1999
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          278
      EdgeCount:       71
      CyclomaticComplexity: 9
      functionsReached:
        - FreeRDPGetBitsPerPixel
        - FreeRDPGetBytesPerPixel
        - overlapping
        - primitives_get
        - winpr_int_assert
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:1974,11'
          Dst:             primitives_get
        - Src:             'libfreerdp/codec/color.c:1976,6'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.c:1978,6'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.c:1984,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1985,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1987,33'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1989,33'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1991,2'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1991,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1992,2'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1992,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1993,2'
          Dst:             overlapping
        - Src:             'libfreerdp/codec/color.c:1993,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1994,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1995,2'
          Dst:             winpr_int_assert
    - functionName:    overlapping
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 828
      functionLinenumberEnd: 845
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          149
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:836,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:837,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_image_fill_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1224
      functionLinenumberEnd: 1258
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          220
      EdgeCount:       45
      CyclomaticComplexity: 8
      functionsReached:
        - FreeRDPColorHasAlpha
        - FreeRDPGetBitsPerPixel
        - FreeRDPGetBytesPerPixel
        - FreeRDPGetColor
        - FreeRDPReadColor_int
        - FreeRDPSplitColor
        - FreeRDPWriteColor_int
        - freerdp_image_fill
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:1225,6'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.c:1228,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1229,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1230,2'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1230,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1232,6'
          Dst:             FreeRDPColorHasAlpha
        - Src:             'libfreerdp/codec/color.c:1234,22'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1238,3'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/codec/color.c:1247,27'
          Dst:             FreeRDPReadColor_int
        - Src:             'libfreerdp/codec/color.c:1249,5'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/codec/color.c:1250,27'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/codec/color.c:1251,10'
          Dst:             FreeRDPWriteColor_int
        - Src:             'libfreerdp/codec/color.c:1257,9'
          Dst:             freerdp_image_fill
    - functionName:    freerdp_image_fill
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1186
      functionLinenumberEnd: 1219
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          228
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - FreeRDPGetBitsPerPixel
        - FreeRDPGetBytesPerPixel
        - FreeRDPWriteColor_int
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:1190,6'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.c:1193,21'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1197,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1199,33'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1201,2'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1201,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1208,8'
          Dst:             FreeRDPWriteColor_int
    - functionName:    freerdp_image_copy
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1148
      functionLinenumberEnd: 1182
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          279
      EdgeCount:       66
      CyclomaticComplexity: 13
      functionsReached:
        - FreeRDPGetBitsPerPixel
        - FreeRDPGetBytesPerPixel
        - freerdp_image_copy_no_overlap
        - freerdp_image_copy_overlap
        - overlapping
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:1158,6'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.c:1160,6'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.c:1163,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1164,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1166,33'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1169,33'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1171,2'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1171,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1172,2'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1172,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1174,19'
          Dst:             overlapping
        - Src:             'libfreerdp/codec/color.c:1176,10'
          Dst:             freerdp_image_copy_overlap
        - Src:             'libfreerdp/codec/color.c:1179,9'
          Dst:             freerdp_image_copy_no_overlap
    - functionName:    freerdp_image_copy_overlap
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1002
      functionLinenumberEnd: 1142
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         121
      ICount:          834
      EdgeCount:       151
      CyclomaticComplexity: 32
      functionsReached:
        - FreeRDPAreColorFormatsEqualNoAlpha_int
        - FreeRDPColorHasAlpha
        - FreeRDPConvertColor
        - FreeRDPGetBitsPerPixel
        - FreeRDPGetBytesPerPixel
        - FreeRDPReadColor_int
        - FreeRDPWriteColor_int
        - freerdp_image_copy_no_overlap_dst_alpha
        - overlapping
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:1003,25'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1004,25'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1017,6'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.c:1019,6'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.c:1022,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1023,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1024,2'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1024,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1025,2'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1025,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1026,2'
          Dst:             overlapping
        - Src:             'libfreerdp/codec/color.c:1026,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:1038,33'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1041,33'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:1049,49'
          Dst:             FreeRDPColorHasAlpha
        - Src:             'libfreerdp/codec/color.c:1051,10'
          Dst:             freerdp_image_copy_no_overlap_dst_alpha
        - Src:             'libfreerdp/codec/color.c:1056,11'
          Dst:             FreeRDPAreColorFormatsEqualNoAlpha_int
        - Src:             'libfreerdp/codec/color.c:1114,19'
          Dst:             FreeRDPReadColor_int
        - Src:             'libfreerdp/codec/color.c:1116,22'
          Dst:             FreeRDPConvertColor
        - Src:             'libfreerdp/codec/color.c:1117,9'
          Dst:             FreeRDPWriteColor_int
        - Src:             'libfreerdp/codec/color.c:1122,13'
          Dst:             FreeRDPReadColor_int
        - Src:             'libfreerdp/codec/color.c:1125,11'
          Dst:             FreeRDPWriteColor_int
        - Src:             'libfreerdp/codec/color.c:1132,17'
          Dst:             FreeRDPConvertColor
        - Src:             'libfreerdp/codec/color.c:1133,11'
          Dst:             FreeRDPWriteColor_int
    - functionName:    freerdp_image_copy_no_overlap_dst_alpha
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 958
      functionLinenumberEnd: 996
      functionDepth:   0
      returnType:      int
      argCount:        17
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          175
      EdgeCount:       61
      CyclomaticComplexity: 31
      functionsReached:
        - freerdp_image_copy_bgr24_bgrx32
        - freerdp_image_copy_bgrx32_bgrx32
        - freerdp_image_copy_generic
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/color.c:962,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/codec/color.c:965,4'
          Branch Sides:    []
        - Branch String:   'libfreerdp/codec/color.c:978,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:959,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:960,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:969,13'
          Dst:             freerdp_image_copy_bgr24_bgrx32
        - Src:             'libfreerdp/codec/color.c:982,13'
          Dst:             freerdp_image_copy_bgrx32_bgrx32
        - Src:             'libfreerdp/codec/color.c:993,9'
          Dst:             freerdp_image_copy_generic
    - functionName:    freerdp_image_copy_from_pointer_data_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 769
      functionLinenumberEnd: 808
      functionDepth:   0
      returnType:      int
      argCount:        13
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          222
      EdgeCount:       34
      CyclomaticComplexity: 4
      functionsReached:
        - FreeRDPGetBitsPerPixel
        - FreeRDPGetBytesPerPixel
        - WLog_Print_dbg_tag
        - freerdp_image_copy_from_pointer_data_1bpp
        - freerdp_image_copy_from_pointer_data_xbpp
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/color.c:788,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:770,6'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.c:773,27'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.c:774,28'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:776,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:780,2'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:780,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:791,11'
          Dst:             freerdp_image_copy_from_pointer_data_1bpp
        - Src:             'libfreerdp/codec/color.c:799,11'
          Dst:             freerdp_image_copy_from_pointer_data_xbpp
        - Src:             'libfreerdp/codec/color.c:804,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_image_copy_from_pointer_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 816
      functionLinenumberEnd: 823
      functionDepth:   0
      returnType:      int
      argCount:        13
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_image_copy_from_pointer_data_int
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:821,9'
          Dst:             freerdp_image_copy_from_pointer_data_int
    - functionName:    div_ceil
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    round_up
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - div_ceil
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:399,13'
          Dst:             div_ceil
    - functionName:    fill_gdi_palette_for_icon
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          106
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - FreeRDPReadColor_int
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:372,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:382,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/color.c:388,25'
          Dst:             FreeRDPReadColor_int
    - functionName:    freerdp_image_copy_from_icon_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - short
        - short
        - 'N/A'
        - short
        - 'N/A'
        - short
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          400
      EdgeCount:       72
      CyclomaticComplexity: 16
      functionsReached:
        - FreeRDPColorHasAlpha
        - FreeRDPGetBitsPerPixel
        - FreeRDPGetBytesPerPixel
        - FreeRDPGetColor
        - FreeRDPReadColor_int
        - FreeRDPSplitColor
        - FreeRDPWriteColor_int
        - WLog_Print_dbg_tag
        - div_ceil
        - fill_gdi_palette_for_icon
        - freerdp_image_copy_no_overlap
        - round_up
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/color.c:427,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:417,6'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.c:420,2'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:420,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:438,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/color.c:458,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/color.c:463,45'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:465,3'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:465,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/color.c:472,2'
          Dst:             fill_gdi_palette_for_icon
        - Src:             'libfreerdp/codec/color.c:473,7'
          Dst:             freerdp_image_copy_no_overlap
        - Src:             'libfreerdp/codec/color.c:478,6'
          Dst:             FreeRDPColorHasAlpha
        - Src:             'libfreerdp/codec/color.c:481,19'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:488,34'
          Dst:             div_ceil
        - Src:             'libfreerdp/codec/color.c:488,25'
          Dst:             round_up
        - Src:             'libfreerdp/codec/color.c:489,55'
          Dst:             div_ceil
        - Src:             'libfreerdp/codec/color.c:492,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/codec/color.c:510,20'
          Dst:             FreeRDPReadColor_int
        - Src:             'libfreerdp/codec/color.c:511,5'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/codec/color.c:512,13'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/codec/color.c:513,10'
          Dst:             FreeRDPWriteColor_int
    - functionName:    freerdp_image_copy_from_monochrome
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      int
      argCount:        11
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          266
      EdgeCount:       57
      CyclomaticComplexity: 13
      functionsReached:
        - FreeRDPGetBitsPerPixel
        - FreeRDPGetBytesPerPixel
        - FreeRDPWriteColor_int
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:305,6'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/codec/color.c:307,34'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:315,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:316,2'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:316,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:328,47'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/codec/color.c:339,10'
          Dst:             FreeRDPWriteColor_int
        - Src:             'libfreerdp/codec/color.c:342,14'
          Dst:             FreeRDPWriteColor_int
    - functionName:    freerdp_glyph_convert_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          204
      EdgeCount:       47
      CyclomaticComplexity: 12
      functionsReached:
        - winpr_aligned_malloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:270,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/color.c:272,25'
          Dst:             winpr_aligned_malloc
    - functionName:    freerdp_glyph_convert
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/color.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_glyph_convert_ex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/color.c:250,9'
          Dst:             freerdp_glyph_convert_ex
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    GETPIXEL32
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          46
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    out_from_count_3
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      short
      argCount:        4
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          208
      EdgeCount:       81
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:421,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:421,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:421,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:426,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:427,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:427,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:427,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:431,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:432,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:432,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:432,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:435,3'
          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:    60
      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:    16
      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:    4
      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_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:    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:    out_bicolor_count_3
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      short
      argCount:        4
      argTypes:
        - short
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         158
      ICount:          423
      EdgeCount:       161
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:250,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:250,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:250,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:255,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:256,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:256,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:256,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:260,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:261,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:261,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:261,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:264,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:264,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:264,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:265,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:265,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:265,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:266,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:266,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:266,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:267,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:267,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:267,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:268,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:268,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:268,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:269,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:269,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:269,3'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    out_color_count_3
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         116
      ICount:          301
      EdgeCount:       119
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:123,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:123,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:123,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:128,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:129,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:129,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:129,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:133,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:134,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:134,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:134,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:137,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:137,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:137,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:139,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:139,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:139,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:140,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:140,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:140,3'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    out_counts_mix_count_3
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 378
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         74
      ICount:          185
      EdgeCount:       77
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:363,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:363,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:363,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:368,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:369,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:369,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:369,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:373,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:374,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:374,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:374,4'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    out_fill_count_3
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         74
      ICount:          183
      EdgeCount:       77
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:309,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:309,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:309,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:314,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:315,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:315,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:315,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:319,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:320,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:320,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:320,4'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    out_copy_count_3
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         74
      ICount:          196
      EdgeCount:       77
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Pointer
        - Stream_ResetPosition
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:188,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:188,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:188,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:193,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:194,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:194,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:194,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:198,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:199,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:199,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:199,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:202,22'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/codec/bitmap.c:202,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/codec/bitmap.c:205,2'
          Dst:             Stream_ResetPosition
    - functionName:    Stream_ResetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1358,3'
          Dst:             winpr_int_assert
    - functionName:    IN_PIXEL32
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - GETPIXEL32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:78,10'
          Dst:             GETPIXEL32
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    GETPIXEL16
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      short
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          118
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:49,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:49,9'
          Dst:             winpr_int_assert
    - functionName:    out_from_count_2
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      short
      argCount:        4
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          208
      EdgeCount:       81
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:391,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:391,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:391,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:396,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:397,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:397,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:397,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:401,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:402,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:402,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:402,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:405,3'
          Dst:             Stream_Write
    - functionName:    out_bicolor_count_2
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      short
      argCount:        4
      argTypes:
        - short
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         102
      ICount:          267
      EdgeCount:       105
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:219,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:219,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:219,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:224,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:225,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:225,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:225,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:229,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:230,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:230,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:230,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:233,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:233,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:233,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:234,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:234,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:234,3'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    out_color_count_2
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         88
      ICount:          223
      EdgeCount:       91
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:93,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:93,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:93,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:98,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:99,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:99,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:99,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:103,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:104,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:104,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:104,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:107,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:107,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:107,3'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    out_counts_mix_count_2
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         74
      ICount:          185
      EdgeCount:       77
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:336,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:336,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:336,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:341,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:342,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:342,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:342,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:346,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:347,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:347,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:347,4'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    reset_counts
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:42,2'
          Dst:             winpr_int_assert
    - functionName:    out_fill_count_2
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         74
      ICount:          183
      EdgeCount:       77
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:283,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:283,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:283,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:288,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:289,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:289,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:289,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:293,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:294,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:294,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:294,4'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    out_copy_count_2
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         74
      ICount:          196
      EdgeCount:       77
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Buffer
        - Stream_ResetPosition
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:157,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:157,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:157,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:162,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:163,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:163,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:163,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:167,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:168,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:168,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:168,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:171,22'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/codec/bitmap.c:171,3'
          Dst:             Stream_Write
        - Src:             'libfreerdp/codec/bitmap.c:174,2'
          Dst:             Stream_ResetPosition
    - functionName:    IN_PIXEL16
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      short
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - GETPIXEL16
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:66,10'
          Dst:             GETPIXEL16
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    freerdp_bitmap_compress_24
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 772
      functionDepth:   0
      returnType:      size_t
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         385
      ICount:          2342
      EdgeCount:       525
      CyclomaticComplexity: 142
      functionsReached:
        - IN_PIXEL32
        - Stream_GetPosition
        - Stream_ResetPosition
        - Stream_Write_UINT8_unchecked
        - out_bicolor_count_3
        - out_color_count_3
        - out_copy_count_3
        - out_counts_mix_count_3
        - out_fill_count_3
        - out_from_count_3
        - reset_counts
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:474,14'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/codec/bitmap.c:490,25'
          Dst:             IN_PIXEL32
        - Src:             'libfreerdp/codec/bitmap.c:491,26'
          Dst:             IN_PIXEL32
        - Src:             'libfreerdp/codec/bitmap.c:503,14'
          Dst:             out_copy_count_3
        - Src:             'libfreerdp/codec/bitmap.c:504,26'
          Dst:             out_fill_count_3
        - Src:             'libfreerdp/codec/bitmap.c:505,6'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:521,14'
          Dst:             out_copy_count_3
        - Src:             'libfreerdp/codec/bitmap.c:522,25'
          Dst:             out_counts_mix_count_3
        - Src:             'libfreerdp/codec/bitmap.c:523,6'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:540,14'
          Dst:             out_copy_count_3
        - Src:             'libfreerdp/codec/bitmap.c:541,27'
          Dst:             out_color_count_3
        - Src:             'libfreerdp/codec/bitmap.c:542,6'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:562,14'
          Dst:             out_copy_count_3
        - Src:             'libfreerdp/codec/bitmap.c:564,10'
          Dst:             out_bicolor_count_3
        - Src:             'libfreerdp/codec/bitmap.c:565,6'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:585,14'
          Dst:             out_copy_count_3
        - Src:             'libfreerdp/codec/bitmap.c:587,10'
          Dst:             out_from_count_3
        - Src:             'libfreerdp/codec/bitmap.c:588,6'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:634,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:634,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:634,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:635,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:635,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:635,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:636,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:636,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:636,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:653,13'
          Dst:             out_copy_count_3
        - Src:             'libfreerdp/codec/bitmap.c:654,25'
          Dst:             out_fill_count_3
        - Src:             'libfreerdp/codec/bitmap.c:655,5'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:668,13'
          Dst:             out_copy_count_3
        - Src:             'libfreerdp/codec/bitmap.c:669,24'
          Dst:             out_counts_mix_count_3
        - Src:             'libfreerdp/codec/bitmap.c:670,5'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:683,13'
          Dst:             out_copy_count_3
        - Src:             'libfreerdp/codec/bitmap.c:685,9'
          Dst:             out_from_count_3
        - Src:             'libfreerdp/codec/bitmap.c:686,5'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:699,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/codec/bitmap.c:709,9'
          Dst:             out_copy_count_3
        - Src:             'libfreerdp/codec/bitmap.c:710,23'
          Dst:             out_fill_count_3
        - Src:             'libfreerdp/codec/bitmap.c:720,9'
          Dst:             out_copy_count_3
        - Src:             'libfreerdp/codec/bitmap.c:721,22'
          Dst:             out_counts_mix_count_3
        - Src:             'libfreerdp/codec/bitmap.c:731,9'
          Dst:             out_copy_count_3
        - Src:             'libfreerdp/codec/bitmap.c:732,24'
          Dst:             out_color_count_3
        - Src:             'libfreerdp/codec/bitmap.c:745,11'
          Dst:             out_copy_count_3
        - Src:             'libfreerdp/codec/bitmap.c:746,26'
          Dst:             out_bicolor_count_3
        - Src:             'libfreerdp/codec/bitmap.c:752,9'
          Dst:             out_copy_count_3
        - Src:             'libfreerdp/codec/bitmap.c:753,26'
          Dst:             out_bicolor_count_3
        - Src:             'libfreerdp/codec/bitmap.c:763,9'
          Dst:             out_copy_count_3
        - Src:             'libfreerdp/codec/bitmap.c:764,22'
          Dst:             out_from_count_3
        - Src:             'libfreerdp/codec/bitmap.c:768,9'
          Dst:             out_copy_count_3
    - functionName:    freerdp_bitmap_compress_16
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 779
      functionLinenumberEnd: 1093
      functionDepth:   0
      returnType:      size_t
      argCount:        9
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         357
      ICount:          2330
      EdgeCount:       497
      CyclomaticComplexity: 142
      functionsReached:
        - IN_PIXEL16
        - Stream_GetPosition
        - Stream_ResetPosition
        - Stream_Write_UINT16_unchecked
        - out_bicolor_count_2
        - out_color_count_2
        - out_copy_count_2
        - out_counts_mix_count_2
        - out_fill_count_2
        - out_from_count_2
        - reset_counts
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:797,14'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/codec/bitmap.c:813,25'
          Dst:             IN_PIXEL16
        - Src:             'libfreerdp/codec/bitmap.c:814,26'
          Dst:             IN_PIXEL16
        - Src:             'libfreerdp/codec/bitmap.c:826,14'
          Dst:             out_copy_count_2
        - Src:             'libfreerdp/codec/bitmap.c:827,26'
          Dst:             out_fill_count_2
        - Src:             'libfreerdp/codec/bitmap.c:828,6'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:844,14'
          Dst:             out_copy_count_2
        - Src:             'libfreerdp/codec/bitmap.c:845,25'
          Dst:             out_counts_mix_count_2
        - Src:             'libfreerdp/codec/bitmap.c:846,6'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:863,14'
          Dst:             out_copy_count_2
        - Src:             'libfreerdp/codec/bitmap.c:864,27'
          Dst:             out_color_count_2
        - Src:             'libfreerdp/codec/bitmap.c:865,6'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:885,14'
          Dst:             out_copy_count_2
        - Src:             'libfreerdp/codec/bitmap.c:887,10'
          Dst:             out_bicolor_count_2
        - Src:             'libfreerdp/codec/bitmap.c:888,6'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:908,14'
          Dst:             out_copy_count_2
        - Src:             'libfreerdp/codec/bitmap.c:910,10'
          Dst:             out_from_count_2
        - Src:             'libfreerdp/codec/bitmap.c:911,6'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:957,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:957,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/bitmap.c:957,4'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/codec/bitmap.c:974,13'
          Dst:             out_copy_count_2
        - Src:             'libfreerdp/codec/bitmap.c:975,25'
          Dst:             out_fill_count_2
        - Src:             'libfreerdp/codec/bitmap.c:976,5'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:989,13'
          Dst:             out_copy_count_2
        - Src:             'libfreerdp/codec/bitmap.c:990,24'
          Dst:             out_counts_mix_count_2
        - Src:             'libfreerdp/codec/bitmap.c:991,5'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:1004,13'
          Dst:             out_copy_count_2
        - Src:             'libfreerdp/codec/bitmap.c:1006,9'
          Dst:             out_from_count_2
        - Src:             'libfreerdp/codec/bitmap.c:1007,5'
          Dst:             reset_counts
        - Src:             'libfreerdp/codec/bitmap.c:1020,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/codec/bitmap.c:1030,9'
          Dst:             out_copy_count_2
        - Src:             'libfreerdp/codec/bitmap.c:1031,23'
          Dst:             out_fill_count_2
        - Src:             'libfreerdp/codec/bitmap.c:1041,9'
          Dst:             out_copy_count_2
        - Src:             'libfreerdp/codec/bitmap.c:1042,22'
          Dst:             out_counts_mix_count_2
        - Src:             'libfreerdp/codec/bitmap.c:1052,9'
          Dst:             out_copy_count_2
        - Src:             'libfreerdp/codec/bitmap.c:1053,24'
          Dst:             out_color_count_2
        - Src:             'libfreerdp/codec/bitmap.c:1066,11'
          Dst:             out_copy_count_2
        - Src:             'libfreerdp/codec/bitmap.c:1067,26'
          Dst:             out_bicolor_count_2
        - Src:             'libfreerdp/codec/bitmap.c:1073,9'
          Dst:             out_copy_count_2
        - Src:             'libfreerdp/codec/bitmap.c:1074,26'
          Dst:             out_bicolor_count_2
        - Src:             'libfreerdp/codec/bitmap.c:1084,9'
          Dst:             out_copy_count_2
        - Src:             'libfreerdp/codec/bitmap.c:1085,22'
          Dst:             out_from_count_2
        - Src:             'libfreerdp/codec/bitmap.c:1089,9'
          Dst:             out_copy_count_2
    - functionName:    freerdp_bitmap_compress
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1098
      functionLinenumberEnd: 1115
      functionDepth:   0
      returnType:      size_t
      argCount:        9
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          76
      EdgeCount:       17
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_ResetPosition
        - freerdp_bitmap_compress_16
        - freerdp_bitmap_compress_24
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/bitmap.c:1101,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/codec/bitmap.c:1099,2'
          Dst:             Stream_ResetPosition
        - Src:             'libfreerdp/codec/bitmap.c:1105,11'
          Dst:             freerdp_bitmap_compress_16
        - Src:             'libfreerdp/codec/bitmap.c:1109,11'
          Dst:             freerdp_bitmap_compress_24
    - functionName:    rfx_differential_decode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_differential.h'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          127
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_differential.h:34,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_differential.h:34,12'
          Dst:             winpr_int_assert
    - functionName:    rfx_decode_component
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_decode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          169
      EdgeCount:       50
      CyclomaticComplexity: 5
      functionsReached:
        - BufferPool_Return
        - BufferPool_Take
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rfx_differential_decode
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_decode.c:45,22'
          Dst:             BufferPool_Take
        - Src:             'libfreerdp/codec/rfx_decode.c:46,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_decode.c:50,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_decode.c:56,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/codec/rfx_decode.c:56,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/codec/rfx_decode.c:63,2'
          Dst:             rfx_differential_decode
        - Src:             'libfreerdp/codec/rfx_decode.c:76,2'
          Dst:             BufferPool_Return
    - functionName:    rfx_decode_rgb
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_decode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          182
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - BufferPool_Return
        - BufferPool_Take
        - primitives_get
        - rfx_decode_component
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_decode.c:98,30'
          Dst:             primitives_get
        - Src:             'libfreerdp/codec/rfx_decode.c:103,19'
          Dst:             BufferPool_Take
        - Src:             'libfreerdp/codec/rfx_decode.c:107,7'
          Dst:             rfx_decode_component
        - Src:             'libfreerdp/codec/rfx_decode.c:110,7'
          Dst:             rfx_decode_component
        - Src:             'libfreerdp/codec/rfx_decode.c:113,7'
          Dst:             rfx_decode_component
        - Src:             'libfreerdp/codec/rfx_decode.c:128,2'
          Dst:             BufferPool_Return
    - functionName:    rfx_dwt_2d_encode_block
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_dwt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         167
      ICount:          931
      EdgeCount:       196
      CyclomaticComplexity: 31
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_dwt.c:158,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:158,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:164,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:164,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:190,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:190,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:194,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:194,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:204,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:204,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:208,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:208,12'
          Dst:             winpr_int_assert
    - functionName:    rfx_dwt_2d_encode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_dwt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          54
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - rfx_dwt_2d_encode_block
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_dwt.c:224,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:225,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:227,2'
          Dst:             rfx_dwt_2d_encode_block
        - Src:             'libfreerdp/codec/rfx_dwt.c:228,2'
          Dst:             rfx_dwt_2d_encode_block
        - Src:             'libfreerdp/codec/rfx_dwt.c:229,2'
          Dst:             rfx_dwt_2d_encode_block
    - functionName:    rfx_dwt_2d_decode_block
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_dwt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         275
      ICount:          1350
      EdgeCount:       316
      CyclomaticComplexity: 43
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_dwt.c:53,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:53,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:54,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:54,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:58,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:58,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:59,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:59,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:71,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:71,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:72,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:72,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:79,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:79,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:80,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:80,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:99,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:99,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:108,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:108,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:112,23'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:112,23'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:118,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:118,22'
          Dst:             winpr_int_assert
    - functionName:    rfx_dwt_2d_decode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_dwt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          54
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - rfx_dwt_2d_decode_block
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_dwt.c:124,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:125,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_dwt.c:127,2'
          Dst:             rfx_dwt_2d_decode_block
        - Src:             'libfreerdp/codec/rfx_dwt.c:128,2'
          Dst:             rfx_dwt_2d_decode_block
        - Src:             'libfreerdp/codec/rfx_dwt.c:129,2'
          Dst:             rfx_dwt_2d_decode_block
    - functionName:    rfx_differential_encode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_differential.h'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          135
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_differential.h:47,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_differential.h:47,10'
          Dst:             winpr_int_assert
    - functionName:    rfx_encode_component
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_encode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          202
      EdgeCount:       58
      CyclomaticComplexity: 8
      functionsReached:
        - BufferPool_Return
        - BufferPool_Take
        - rfx_differential_encode
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_encode.c:240,22'
          Dst:             BufferPool_Take
        - Src:             'libfreerdp/codec/rfx_encode.c:253,2'
          Dst:             rfx_differential_encode
        - Src:             'libfreerdp/codec/rfx_encode.c:266,2'
          Dst:             BufferPool_Return
        - Src:             'libfreerdp/codec/rfx_encode.c:268,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_encode.c:268,10'
          Dst:             winpr_int_assert
    - functionName:    rfx_encode_format_rgb
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_encode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      void
      argCount:        9
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         85
      ICount:          869
      EdgeCount:       101
      CyclomaticComplexity: 18
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/codec/rfx_encode.c:59,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    rfx_encode_rgb
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_encode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         92
      ICount:          462
      EdgeCount:       107
      CyclomaticComplexity: 17
      functionsReached:
        - BufferPool_Return
        - BufferPool_Take
        - primitives_get
        - rfx_encode_component
        - rfx_encode_format_rgb
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_encode.c:283,24'
          Dst:             primitives_get
        - Src:             'libfreerdp/codec/rfx_encode.c:286,25'
          Dst:             BufferPool_Take
        - Src:             'libfreerdp/codec/rfx_encode.c:299,2'
          Dst:             rfx_encode_format_rgb
        - Src:             'libfreerdp/codec/rfx_encode.c:318,7'
          Dst:             rfx_encode_component
        - Src:             'libfreerdp/codec/rfx_encode.c:321,7'
          Dst:             rfx_encode_component
        - Src:             'libfreerdp/codec/rfx_encode.c:324,7'
          Dst:             rfx_encode_component
        - Src:             'libfreerdp/codec/rfx_encode.c:327,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_encode.c:327,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_encode.c:328,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_encode.c:328,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_encode.c:329,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_encode.c:329,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_encode.c:335,7'
          Dst:             BufferPool_Return
    - functionName:    rfx_quantization_encode_block
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_quantization.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          209
      EdgeCount:       60
      CyclomaticComplexity: 10
      functionsReached:
        - winpr_int_assert
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_quantization.c:92,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_quantization.c:92,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_quantization.c:96,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_quantization.c:96,10'
          Dst:             winpr_int_assert
    - functionName:    rfx_quantization_encode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_quantization.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          163
      EdgeCount:       30
      CyclomaticComplexity: 4
      functionsReached:
        - rfx_quantization_encode_block
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_quantization.c:104,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_quantization.c:105,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_quantization.c:106,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_quantization.c:115,2'
          Dst:             rfx_quantization_encode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:116,2'
          Dst:             rfx_quantization_encode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:117,2'
          Dst:             rfx_quantization_encode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:118,2'
          Dst:             rfx_quantization_encode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:119,2'
          Dst:             rfx_quantization_encode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:120,2'
          Dst:             rfx_quantization_encode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:121,2'
          Dst:             rfx_quantization_encode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:122,2'
          Dst:             rfx_quantization_encode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:123,2'
          Dst:             rfx_quantization_encode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:124,2'
          Dst:             rfx_quantization_encode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:127,2'
          Dst:             rfx_quantization_encode_block
    - functionName:    rfx_quantization_decode_block
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_quantization.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rfx_quantization_decode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_quantization.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          175
      EdgeCount:       30
      CyclomaticComplexity: 4
      functionsReached:
        - primitives_get
        - rfx_quantization_decode_block
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_quantization.c:60,30'
          Dst:             primitives_get
        - Src:             'libfreerdp/codec/rfx_quantization.c:61,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_quantization.c:62,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_quantization.c:63,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_quantization.c:73,2'
          Dst:             rfx_quantization_decode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:74,2'
          Dst:             rfx_quantization_decode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:75,2'
          Dst:             rfx_quantization_decode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:76,2'
          Dst:             rfx_quantization_decode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:77,2'
          Dst:             rfx_quantization_decode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:78,2'
          Dst:             rfx_quantization_decode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:79,2'
          Dst:             rfx_quantization_decode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:80,2'
          Dst:             rfx_quantization_decode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:81,2'
          Dst:             rfx_quantization_decode_block
        - Src:             'libfreerdp/codec/rfx_quantization.c:82,2'
          Dst:             rfx_quantization_decode_block
    - 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:    __lzcnt
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/intrin.h'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BitStream_Prefetch
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          155
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/bitstream.h:53,3'
          Dst:             winpr_int_assert
    - functionName:    rfx_bitstream_get_processed_bytes
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          50
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_bitstream.h:129,3'
          Dst:             winpr_int_assert
    - functionName:    rfx_bitstream_flush
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          48
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - rfx_bitstream_put_bits
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_bitstream.h:100,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_bitstream.h:104,4'
          Dst:             rfx_bitstream_put_bits
    - functionName:    rfx_bitstream_put_bits
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          206
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_bitstream.h:78,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_bitstream.h:78,17'
          Dst:             winpr_int_assert
    - functionName:    Get2MagSign
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_rlgr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 624
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         48
      ICount:          166
      EdgeCount:       55
      CyclomaticComplexity: 9
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_rlgr.c:622,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:622,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:623,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:623,9'
          Dst:             winpr_int_assert
    - functionName:    rfx_rlgr_code_gr
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_rlgr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 654
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          78
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - OutputBit
        - UpdateParam
        - rfx_bitstream_put_bits
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_rlgr.c:636,2'
          Dst:             OutputBit
        - Src:             'libfreerdp/codec/rfx_rlgr.c:637,2'
          Dst:             OutputBit
        - Src:             'libfreerdp/codec/rfx_rlgr.c:642,3'
          Dst:             rfx_bitstream_put_bits
        - Src:             'libfreerdp/codec/rfx_rlgr.c:648,9'
          Dst:             UpdateParam
        - Src:             'libfreerdp/codec/rfx_rlgr.c:652,9'
          Dst:             UpdateParam
    - functionName:    OutputBit
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_rlgr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 607
      functionLinenumberEnd: 615
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - rfx_bitstream_put_bits
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_rlgr.c:611,3'
          Dst:             rfx_bitstream_put_bits
        - Src:             'libfreerdp/codec/rfx_rlgr.c:614,3'
          Dst:             rfx_bitstream_put_bits
    - functionName:    UpdateParam
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_rlgr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         60
      ICount:          216
      EdgeCount:       69
      CyclomaticComplexity: 11
      functionsReached:
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_rlgr.c:70,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:73,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:73,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:80,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:80,13'
          Dst:             winpr_int_assert
    - functionName:    rfx_bitstream_attach
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          130
      EdgeCount:       39
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_bitstream.h:44,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_bitstream.h:47,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_bitstream.h:48,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_bitstream.h:48,16'
          Dst:             winpr_int_assert
    - functionName:    rfx_rlgr_encode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_rlgr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 658
      functionLinenumberEnd: 792
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         95
      ICount:          487
      EdgeCount:       118
      CyclomaticComplexity: 25
      functionsReached:
        - Get2MagSign
        - OutputBit
        - UpdateParam
        - rfx_bitstream_attach
        - rfx_bitstream_flush
        - rfx_bitstream_get_processed_bytes
        - rfx_bitstream_put_bits
        - rfx_rlgr_code_gr
        - winpr_aligned_calloc
        - winpr_aligned_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_rlgr.c:659,38'
          Dst:             winpr_aligned_calloc
        - Src:             'libfreerdp/codec/rfx_rlgr.c:664,2'
          Dst:             rfx_bitstream_attach
        - Src:             'libfreerdp/codec/rfx_rlgr.c:697,5'
          Dst:             OutputBit
        - Src:             'libfreerdp/codec/rfx_rlgr.c:699,9'
          Dst:             UpdateParam
        - Src:             'libfreerdp/codec/rfx_rlgr.c:704,4'
          Dst:             OutputBit
        - Src:             'libfreerdp/codec/rfx_rlgr.c:707,4'
          Dst:             rfx_bitstream_put_bits
        - Src:             'libfreerdp/codec/rfx_rlgr.c:717,4'
          Dst:             OutputBit
        - Src:             'libfreerdp/codec/rfx_rlgr.c:718,4'
          Dst:             rfx_rlgr_code_gr
        - Src:             'libfreerdp/codec/rfx_rlgr.c:720,8'
          Dst:             UpdateParam
        - Src:             'libfreerdp/codec/rfx_rlgr.c:734,13'
          Dst:             Get2MagSign
        - Src:             'libfreerdp/codec/rfx_rlgr.c:735,5'
          Dst:             rfx_rlgr_code_gr
        - Src:             'libfreerdp/codec/rfx_rlgr.c:742,10'
          Dst:             UpdateParam
        - Src:             'libfreerdp/codec/rfx_rlgr.c:746,10'
          Dst:             UpdateParam
        - Src:             'libfreerdp/codec/rfx_rlgr.c:762,14'
          Dst:             Get2MagSign
        - Src:             'libfreerdp/codec/rfx_rlgr.c:764,14'
          Dst:             Get2MagSign
        - Src:             'libfreerdp/codec/rfx_rlgr.c:767,5'
          Dst:             rfx_rlgr_code_gr
        - Src:             'libfreerdp/codec/rfx_rlgr.c:771,5'
          Dst:             rfx_bitstream_put_bits
        - Src:             'libfreerdp/codec/rfx_rlgr.c:777,10'
          Dst:             UpdateParam
        - Src:             'libfreerdp/codec/rfx_rlgr.c:781,10'
          Dst:             UpdateParam
        - Src:             'libfreerdp/codec/rfx_rlgr.c:787,2'
          Dst:             rfx_bitstream_flush
        - Src:             'libfreerdp/codec/rfx_rlgr.c:788,28'
          Dst:             rfx_bitstream_get_processed_bytes
        - Src:             'libfreerdp/codec/rfx_rlgr.c:789,2'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/codec/rfx_rlgr.c:791,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:791,9'
          Dst:             winpr_int_assert
    - functionName:    BitStream_Shift
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          204
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - BitStream_Prefetch
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/bitstream.h:101,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/bitstream.h:123,5'
          Dst:             BitStream_Prefetch
        - Src:             'winpr/include/winpr/bitstream.h:134,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    BitStream_Shift32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - BitStream_Shift
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/bitstream.h:140,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/bitstream.h:141,3'
          Dst:             BitStream_Shift
        - Src:             'winpr/include/winpr/bitstream.h:142,3'
          Dst:             BitStream_Shift
    - functionName:    lzcnt_s
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_rlgr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         58
      ICount:          220
      EdgeCount:       65
      CyclomaticComplexity: 9
      functionsReached:
        - __lzcnt
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_rlgr.c:113,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:120,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:127,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:134,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:141,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:145,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:149,9'
          Dst:             __lzcnt
    - functionName:    BitStream_GetRemainingLength
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/bitstream.h:172,3'
          Dst:             winpr_int_assert
    - functionName:    BitStream_Fetch
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/bitstream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          157
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - BitStream_Prefetch
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/bitstream.h:70,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/bitstream.h:82,3'
          Dst:             BitStream_Prefetch
    - functionName:    rfx_rlgr_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_rlgr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - IsProcessorFeaturePresentEx
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_rlgr.c:97,12'
          Dst:             IsProcessorFeaturePresentEx
    - functionName:    rfx_rlgr_decode
      functionSourceFile: '/src/FreeRDP/libfreerdp/codec/rfx_rlgr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 585
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         699
      ICount:          2977
      EdgeCount:       837
      CyclomaticComplexity: 140
      functionsReached:
        - BitStream_Attach
        - BitStream_Fetch
        - BitStream_GetRemainingLength
        - BitStream_Shift
        - BitStream_Shift32
        - lzcnt_s
        - rfx_rlgr_init
        - winpr_InitOnceExecuteOnce
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/codec/rfx_rlgr.c:175,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'libfreerdp/codec/rfx_rlgr.c:175,7'
          Dst:             rfx_rlgr_init
        - Src:             'libfreerdp/codec/rfx_rlgr.c:197,2'
          Dst:             BitStream_Attach
        - Src:             'libfreerdp/codec/rfx_rlgr.c:198,2'
          Dst:             BitStream_Fetch
        - Src:             'libfreerdp/codec/rfx_rlgr.c:200,10'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:210,10'
          Dst:             lzcnt_s
        - Src:             'libfreerdp/codec/rfx_rlgr.c:212,19'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:215,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:215,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:217,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:217,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:219,27'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:221,5'
          Dst:             BitStream_Shift32
        - Src:             'libfreerdp/codec/rfx_rlgr.c:223,11'
          Dst:             lzcnt_s
        - Src:             'libfreerdp/codec/rfx_rlgr.c:225,13'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:230,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:231,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:231,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:234,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/rfx_rlgr.c:236,8'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:239,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/rfx_rlgr.c:258,8'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:263,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/rfx_rlgr.c:267,8'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:271,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/rfx_rlgr.c:275,10'
          Dst:             lzcnt_s
        - Src:             'libfreerdp/codec/rfx_rlgr.c:277,12'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:282,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:282,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:284,27'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:286,5'
          Dst:             BitStream_Shift32
        - Src:             'libfreerdp/codec/rfx_rlgr.c:288,11'
          Dst:             lzcnt_s
        - Src:             'libfreerdp/codec/rfx_rlgr.c:290,13'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:295,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:296,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:296,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:299,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/rfx_rlgr.c:301,8'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:304,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/rfx_rlgr.c:308,8'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:316,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/rfx_rlgr.c:357,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:357,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:359,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:359,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:363,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:363,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:367,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:367,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:387,10'
          Dst:             lzcnt_s
        - Src:             'libfreerdp/codec/rfx_rlgr.c:389,19'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:394,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:394,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:396,27'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:398,5'
          Dst:             BitStream_Shift32
        - Src:             'libfreerdp/codec/rfx_rlgr.c:400,11'
          Dst:             lzcnt_s
        - Src:             'libfreerdp/codec/rfx_rlgr.c:402,13'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:407,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:408,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:408,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:411,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/rfx_rlgr.c:413,8'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:416,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/rfx_rlgr.c:420,8'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:428,4'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/rfx_rlgr.c:489,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:489,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:491,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:491,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:506,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:506,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:507,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:507,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:507,18'
          Dst:             lzcnt_s
        - Src:             'libfreerdp/codec/rfx_rlgr.c:510,9'
          Dst:             BitStream_GetRemainingLength
        - Src:             'libfreerdp/codec/rfx_rlgr.c:518,5'
          Dst:             BitStream_Shift
        - Src:             'libfreerdp/codec/rfx_rlgr.c:546,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:546,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:548,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:548,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:557,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:557,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:559,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:559,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:563,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:563,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:570,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:570,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:574,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:574,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:579,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/codec/rfx_rlgr.c:579,11'
          Dst:             winpr_int_assert
    - functionName:    add
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_add.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    primitives_init_add_sse3
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_add.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - IsProcessorFeaturePresent
        - primitives_init_add_sse3_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_add.h:35,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_add.h:36,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_add.h:39,2'
          Dst:             primitives_init_add_sse3_int
    - functionName:    primitives_init_add_opt
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_add.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - primitives_init_add
        - primitives_init_add_sse3
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_add.c:81,2'
          Dst:             primitives_init_add
        - Src:             'libfreerdp/primitives/prim_add.c:82,2'
          Dst:             primitives_init_add_sse3
    - functionName:    primitives_init_add
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_add.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_add_16s
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_add.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_add.c:51,13'
          Dst:             add
        - Src:             'libfreerdp/primitives/prim_add.c:54,13'
          Dst:             add
    - functionName:    general_add_16s_inplace
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_add.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          61
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_add.c:64,13'
          Dst:             add
    - functionName:    primitives_init_andor_sse3
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_andor.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - IsProcessorFeaturePresent
        - primitives_init_andor_sse3_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_andor.h:35,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_andor.h:36,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_andor.h:39,2'
          Dst:             primitives_init_andor_sse3_int
    - functionName:    primitives_init_andor_opt
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_andor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - primitives_init_andor
        - primitives_init_andor_sse3
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_andor.c:64,2'
          Dst:             primitives_init_andor
        - Src:             'libfreerdp/primitives/prim_andor.c:65,2'
          Dst:             primitives_init_andor_sse3
    - functionName:    primitives_init_andor
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_andor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_andC_32u
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_andor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_orC_32u
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_andor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    primitives_init_alphaComp_sse3
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_alphaComp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - IsProcessorFeaturePresent
        - primitives_init_alphaComp_sse3_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_alphaComp.h:35,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_alphaComp.h:36,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_alphaComp.h:39,2'
          Dst:             primitives_init_alphaComp_sse3_int
    - functionName:    primitives_init_alphaComp_opt
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_alphaComp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - primitives_init_alphaComp
        - primitives_init_alphaComp_sse3
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_alphaComp.c:96,2'
          Dst:             primitives_init_alphaComp
        - Src:             'libfreerdp/primitives/prim_alphaComp.c:97,2'
          Dst:             primitives_init_alphaComp_sse3
    - functionName:    primitives_init_alphaComp
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_alphaComp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_alphaComp_argb
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_alphaComp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          190
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writeScanlineGeneric
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          308
      EdgeCount:       80
      CyclomaticComplexity: 12
      functionsReached:
        - getPixelWriteFunction
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:336,30'
          Dst:             getPixelWriteFunction
        - Src:             'libfreerdp/primitives/prim_colors.c:345,46'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:345,46'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:346,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:346,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:346,55'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:346,55'
          Dst:             winpr_int_assert
    - functionName:    getPixelWriteFunction
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       28
      CyclomaticComplexity: 15
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/prim_internal.h:179,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    writePixelARGB
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          41
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelXRGB
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelABGR
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          41
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelXBGR
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelRGBA
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          41
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelRGBX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelBGRA
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          41
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelBGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelGenericAlpha
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetColor
        - FreeRDPWriteColor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:160,17'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/primitives/prim_internal.h:161,2'
          Dst:             FreeRDPWriteColor
    - functionName:    writePixelGeneric
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetColor
        - FreeRDPWriteColorIgnoreAlpha
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:169,17'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/primitives/prim_internal.h:170,2'
          Dst:             FreeRDPWriteColorIgnoreAlpha
    - functionName:    writeScanlineRGB
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          85
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - CLIP
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:358,18'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:359,18'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:360,18'
          Dst:             CLIP
    - functionName:    CLIP
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    27
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writeScanlineBGR
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          85
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - CLIP
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:375,18'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:376,18'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:377,18'
          Dst:             CLIP
    - functionName:    writeScanlineRGBX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          89
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - CLIP
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:410,18'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:411,18'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:412,18'
          Dst:             CLIP
    - functionName:    writeScanlineXBGR
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          89
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - CLIP
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:428,18'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:429,18'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:430,18'
          Dst:             CLIP
    - functionName:    writeScanlineXRGB
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 454
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          89
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - CLIP
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:446,18'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:447,18'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:448,18'
          Dst:             CLIP
    - functionName:    getScanlineWriteFunction
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 488
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          67
      EdgeCount:       32
      CyclomaticComplexity: 17
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/prim_colors.c:461,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    writeScanlineBGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 386
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          89
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - CLIP
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:392,18'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:393,18'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:394,18'
          Dst:             CLIP
    - functionName:    general_RGBToRGB_16s8u_P3AC4R_general
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 514
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          106
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - getScanlineWriteFunction
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:502,36'
          Dst:             getScanlineWriteFunction
        - Src:             'libfreerdp/primitives/prim_colors.c:503,27'
          Dst:             FreeRDPGetBytesPerPixel
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_RGBToRGB_16s8u_P3AC4R_BGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 539
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          99
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - writeScanlineBGRX
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:528,27'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_colors.c:532,3'
          Dst:             writeScanlineBGRX
    - functionName:    general_yCbCrToRGB_16s8u_P3AC4R_general
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          205
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - CLIP
        - FreeRDPGetBytesPerPixel
        - getPixelWriteFunction
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:134,36'
          Dst:             getPixelWriteFunction
        - Src:             'libfreerdp/primitives/prim_colors.c:135,27'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_colors.c:152,51'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:152,60'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:152,69'
          Dst:             CLIP
    - functionName:    general_yCbCrToRGB_16s8u_P3AC4R_BGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         158
      ICount:          684
      EdgeCount:       181
      CyclomaticComplexity: 25
      functionsReached:
        - CLIP
        - FreeRDPGetBytesPerPixel
        - winpr_int_assert
        - writePixelBGRX
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:89,27'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_colors.c:100,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:100,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:102,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:102,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:104,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:104,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:106,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:106,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:108,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:108,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:109,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:109,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:110,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:110,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:111,55'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:111,64'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:111,73'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:111,11'
          Dst:             writePixelBGRX
    - functionName:    primitives_init_colors_neon
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.h'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - IsProcessorFeaturePresent
        - primitives_init_colors_neon_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.h:45,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_colors.h:48,2'
          Dst:             primitives_init_colors_neon_int
    - functionName:    primitives_init_colors_sse2
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - IsProcessorFeaturePresent
        - primitives_init_colors_sse2_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.h:35,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_colors.h:36,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_colors.h:39,2'
          Dst:             primitives_init_colors_sse2_int
    - functionName:    primitives_init_colors_opt
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 572
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - primitives_init_colors
        - primitives_init_colors_neon
        - primitives_init_colors_sse2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:573,2'
          Dst:             primitives_init_colors
        - Src:             'libfreerdp/primitives/prim_colors.c:574,2'
          Dst:             primitives_init_colors_sse2
        - Src:             'libfreerdp/primitives/prim_colors.c:575,2'
          Dst:             primitives_init_colors_neon
    - functionName:    primitives_init_colors
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 568
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_yCbCrToRGB_16s8u_P3AC4R
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - general_yCbCrToRGB_16s8u_P3AC4R_BGRX
        - general_yCbCrToRGB_16s8u_P3AC4R_general
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/prim_colors.c:169,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:173,11'
          Dst:             general_yCbCrToRGB_16s8u_P3AC4R_BGRX
        - Src:             'libfreerdp/primitives/prim_colors.c:177,11'
          Dst:             general_yCbCrToRGB_16s8u_P3AC4R_general
    - functionName:    general_yCbCrToRGB_16s16s_P3P3
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          371
      EdgeCount:       61
      CyclomaticComplexity: 10
      functionsReached:
        - CLIP
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:206,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:206,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:208,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:208,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:249,14'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:250,14'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_colors.c:251,14'
          Dst:             CLIP
    - functionName:    general_RGBToYCbCr_16s16s_P3P3
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         71
      ICount:          420
      EdgeCount:       85
      CyclomaticComplexity: 16
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:287,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:287,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:289,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_colors.c:289,20'
          Dst:             winpr_int_assert
    - functionName:    general_RGBToRGB_16s8u_P3AC4R
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_colors.c'
      linkageType:     InternalLinkage
      functionLinenumber: 549
      functionLinenumberEnd: 560
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - general_RGBToRGB_16s8u_P3AC4R_BGRX
        - general_RGBToRGB_16s8u_P3AC4R_general
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/prim_colors.c:550,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_colors.c:554,11'
          Dst:             general_RGBToRGB_16s8u_P3AC4R_BGRX
        - Src:             'libfreerdp/primitives/prim_colors.c:557,11'
          Dst:             general_RGBToRGB_16s8u_P3AC4R_general
    - functionName:    generic_image_copy_bgrx32_bgrx32
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          232
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    generic_image_copy_bgr24_bgrx32
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          232
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    generic_image_copy_no_overlap_no_alpha
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      int
      argCount:        18
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - size_t
        - size_t
        - size_t
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          102
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - FreeRDPAreColorFormatsEqualNoAlpha
        - generic_image_copy_no_overlap_convert
        - generic_image_copy_no_overlap_memcpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_copy.c:361,6'
          Dst:             FreeRDPAreColorFormatsEqualNoAlpha
        - Src:             'libfreerdp/primitives/prim_copy.c:362,10'
          Dst:             generic_image_copy_no_overlap_memcpy
        - Src:             'libfreerdp/primitives/prim_copy.c:367,10'
          Dst:             generic_image_copy_no_overlap_convert
    - functionName:    generic_image_copy_no_overlap_memcpy
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      int
      argCount:        18
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - size_t
        - size_t
        - size_t
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          199
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_copy.c:273,26'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_copy.c:274,26'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_copy.c:286,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:286,10'
          Dst:             winpr_int_assert
    - functionName:    generic_image_copy_no_overlap_convert
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      int
      argCount:        17
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          223
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - FreeRDPConvertColor
        - FreeRDPGetBytesPerPixel
        - FreeRDPReadColor_int
        - FreeRDPWriteColor_int
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_copy.c:235,26'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_copy.c:236,26'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_copy.c:250,25'
          Dst:             FreeRDPReadColor_int
        - Src:             'libfreerdp/primitives/prim_copy.c:251,28'
          Dst:             FreeRDPConvertColor
        - Src:             'libfreerdp/primitives/prim_copy.c:252,9'
          Dst:             FreeRDPWriteColor_int
        - Src:             'libfreerdp/primitives/prim_copy.c:257,25'
          Dst:             FreeRDPReadColor_int
        - Src:             'libfreerdp/primitives/prim_copy.c:258,28'
          Dst:             FreeRDPConvertColor
        - Src:             'libfreerdp/primitives/prim_copy.c:259,9'
          Dst:             FreeRDPWriteColor_int
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - functionName:    FreeRDPReadColor_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/../codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          151
      EdgeCount:       22
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPColorHasAlpha
        - FreeRDPGetBitsPerPixel
        - FreeRDPGetColorFormatName
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/../codec/color.h:117,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/../codec/color.h:115,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/../codec/color.h:117,10'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/primitives/../codec/color.h:135,9'
          Dst:             FreeRDPColorHasAlpha
        - Src:             'libfreerdp/primitives/../codec/color.h:147,4'
          Dst:             FreeRDPGetColorFormatName
        - Src:             'libfreerdp/primitives/../codec/color.h:147,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDPConvertColor
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetColor
        - FreeRDPSplitColor
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:277,3'
          Dst:             FreeRDPSplitColor
        - Src:             'include/freerdp/codec/color.h:278,10'
          Dst:             FreeRDPGetColor
    - functionName:    FreeRDPWriteColor_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/../codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          146
      EdgeCount:       20
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPColorHasAlpha
        - FreeRDPGetBitsPerPixel
        - FreeRDPGetColorFormatName
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/../codec/color.h:42,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/../codec/color.h:41,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/../codec/color.h:42,10'
          Dst:             FreeRDPGetBitsPerPixel
        - Src:             'libfreerdp/primitives/../codec/color.h:63,9'
          Dst:             FreeRDPColorHasAlpha
        - Src:             'libfreerdp/primitives/../codec/color.h:75,4'
          Dst:             FreeRDPGetColorFormatName
        - Src:             'libfreerdp/primitives/../codec/color.h:75,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FreeRDPColorHasAlpha
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      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:    generic_image_copy_no_overlap_dst_alpha
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      int
      argCount:        17
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          237
      EdgeCount:       78
      CyclomaticComplexity: 39
      functionsReached:
        - generic_image_copy_bgr24_bgrx32
        - generic_image_copy_bgrx32_bgrx32
        - generic_image_copy_no_overlap_convert
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/prim_copy.c:301,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/primitives/prim_copy.c:304,4'
          Branch Sides:    []
        - Branch String:   'libfreerdp/primitives/prim_copy.c:317,4'
          Branch Sides:    []
        - Branch String:   'libfreerdp/primitives/prim_copy.c:330,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_copy.c:298,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:299,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:308,13'
          Dst:             generic_image_copy_bgr24_bgrx32
        - Src:             'libfreerdp/primitives/prim_copy.c:321,13'
          Dst:             generic_image_copy_bgrx32_bgrx32
        - Src:             'libfreerdp/primitives/prim_copy.c:334,13'
          Dst:             generic_image_copy_bgrx32_bgrx32
        - Src:             'libfreerdp/primitives/prim_copy.c:338,13'
          Dst:             generic_image_copy_bgr24_bgrx32
        - Src:             'libfreerdp/primitives/prim_copy.c:349,9'
          Dst:             generic_image_copy_no_overlap_convert
    - functionName:    memory_regions_overlap_2d
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         137
      ICount:          514
      EdgeCount:       158
      CyclomaticComplexity: 23
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_copy.c:64,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:64,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:65,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:65,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:66,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:66,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:74,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:74,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:75,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:75,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:76,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:76,29'
          Dst:             winpr_int_assert
    - functionName:    memory_regions_overlap_1d
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    primitives_init_copy_avx2
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_copy.h'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - IsProcessorFeaturePresent
        - primitives_init_copy_avx2_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_copy.h:56,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_copy.h:59,2'
          Dst:             primitives_init_copy_avx2_int
    - functionName:    primitives_init_copy_sse41
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_copy.h'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - IsProcessorFeaturePresent
        - primitives_init_copy_sse41_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_copy.h:46,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_copy.h:49,2'
          Dst:             primitives_init_copy_sse41_int
    - functionName:    primitives_init_copy_opt
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - primitives_init_copy
        - primitives_init_copy_avx2
        - primitives_init_copy_sse41
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_copy.c:434,2'
          Dst:             primitives_init_copy
        - Src:             'libfreerdp/primitives/prim_copy.c:435,2'
          Dst:             primitives_init_copy_sse41
        - Src:             'libfreerdp/primitives/prim_copy.c:437,2'
          Dst:             primitives_init_copy_avx2
    - functionName:    primitives_init_copy
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          27
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_copy_8u
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - memory_regions_overlap_1d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_copy.c:90,6'
          Dst:             memory_regions_overlap_1d
    - functionName:    general_copy_8u_AC4r
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          282
      EdgeCount:       76
      CyclomaticComplexity: 14
      functionsReached:
        - memory_regions_overlap_2d
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_copy.c:113,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:113,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:118,6'
          Dst:             memory_regions_overlap_2d
        - Src:             'libfreerdp/primitives/prim_copy.c:124,32'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_copy.c:124,32'
          Dst:             winpr_int_assert
    - functionName:    generic_image_copy_no_overlap
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_copy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          224
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - FreeRDPColorHasAlpha
        - FreeRDPGetBytesPerPixel
        - generic_image_copy_no_overlap_dst_alpha
        - generic_image_copy_no_overlap_no_alpha
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_copy.c:397,23'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_copy.c:400,23'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_copy.c:408,49'
          Dst:             FreeRDPColorHasAlpha
        - Src:             'libfreerdp/primitives/prim_copy.c:409,10'
          Dst:             generic_image_copy_no_overlap_dst_alpha
        - Src:             'libfreerdp/primitives/prim_copy.c:414,10'
          Dst:             generic_image_copy_no_overlap_no_alpha
    - functionName:    primitives_init_set_sse2
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_set.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - IsProcessorFeaturePresent
        - primitives_init_set_sse2_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_set.h:35,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_set.h:36,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_set.h:39,2'
          Dst:             primitives_init_set_sse2_int
    - functionName:    primitives_init_set_opt
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_set.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - primitives_init_set
        - primitives_init_set_sse2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_set.c:135,2'
          Dst:             primitives_init_set
        - Src:             'libfreerdp/primitives/prim_set.c:136,2'
          Dst:             primitives_init_set_sse2
    - functionName:    primitives_init_set
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_set.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_set_8u
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_set.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_set_32s
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_set.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          140
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - primitives_get
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_set.c:60,24'
          Dst:             primitives_get
        - Src:             'libfreerdp/primitives/prim_set.c:70,3'
          Dst:             winpr_int_assert
    - functionName:    general_set_32u
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_set.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          141
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - primitives_get
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_set.c:101,10'
          Dst:             primitives_get
        - Src:             'libfreerdp/primitives/prim_set.c:111,3'
          Dst:             winpr_int_assert
    - functionName:    general_zero
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_set.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    shift
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_shift.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          99
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_shift.c:30,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_shift.c:30,9'
          Dst:             winpr_int_assert
    - functionName:    primitives_init_shift_sse3
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_shift.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - IsProcessorFeaturePresent
        - primitives_init_shift_sse3_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_shift.h:34,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_shift.h:35,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_shift.h:38,2'
          Dst:             primitives_init_shift_sse3_int
    - functionName:    primitives_init_shift_opt
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_shift.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - primitives_init_shift
        - primitives_init_shift_sse3
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_shift.c:148,2'
          Dst:             primitives_init_shift
        - Src:             'libfreerdp/primitives/prim_shift.c:149,2'
          Dst:             primitives_init_shift_sse3
    - functionName:    primitives_init_shift
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_shift.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          27
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_lShiftC_16s_inplace
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_shift.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - shift
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_shift.c:42,16'
          Dst:             shift
    - functionName:    general_lShiftC_16s
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_shift.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - shift
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_shift.c:56,13'
          Dst:             shift
    - functionName:    general_rShiftC_16s
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_shift.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          146
      EdgeCount:       39
      CyclomaticComplexity: 8
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_shift.c:71,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_shift.c:71,13'
          Dst:             winpr_int_assert
    - functionName:    general_lShiftC_16u
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_shift.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          147
      EdgeCount:       39
      CyclomaticComplexity: 8
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_shift.c:86,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_shift.c:86,13'
          Dst:             winpr_int_assert
    - functionName:    general_rShiftC_16u
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_shift.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_shiftC_16s
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_shift.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          187
      EdgeCount:       58
      CyclomaticComplexity: 10
      functionsReached:
        - general_lShiftC_16s
        - general_rShiftC_16s
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_shift.c:114,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_shift.c:114,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_shift.c:114,10'
          Dst:             general_rShiftC_16s
        - Src:             'libfreerdp/primitives/prim_shift.c:116,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_shift.c:116,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_shift.c:116,10'
          Dst:             general_lShiftC_16s
    - functionName:    general_shiftC_16u
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_shift.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          187
      EdgeCount:       58
      CyclomaticComplexity: 10
      functionsReached:
        - general_lShiftC_16u
        - general_rShiftC_16u
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_shift.c:127,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_shift.c:127,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_shift.c:127,10'
          Dst:             general_rShiftC_16u
        - Src:             'libfreerdp/primitives/prim_shift.c:129,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_shift.c:129,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_shift.c:129,10'
          Dst:             general_lShiftC_16u
    - functionName:    primitives_init_sign_ssse3
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_sign.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - IsProcessorFeaturePresent
        - IsProcessorFeaturePresentEx
        - primitives_init_sign_ssse3_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_sign.h:35,7'
          Dst:             IsProcessorFeaturePresentEx
        - Src:             'libfreerdp/primitives/prim_sign.h:36,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_sign.h:39,2'
          Dst:             primitives_init_sign_ssse3_int
    - functionName:    primitives_init_sign_opt
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_sign.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - primitives_init_sign
        - primitives_init_sign_ssse3
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_sign.c:48,2'
          Dst:             primitives_init_sign
        - Src:             'libfreerdp/primitives/prim_sign.c:49,2'
          Dst:             primitives_init_sign_ssse3
    - functionName:    primitives_init_sign
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_sign.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_sign_16s
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_sign.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          134
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_sign.c:33,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_sign.c:33,13'
          Dst:             winpr_int_assert
    - functionName:    general_RGBToAVC444YUVv2_ANY_DOUBLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1917
      functionLinenumberEnd: 2050
      functionDepth:   0
      returnType:      void
      argCount:        16
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          530
      EdgeCount:       61
      CyclomaticComplexity: 15
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - FreeRDPReadColor
        - FreeRDPSplitColor
        - RGB2U
        - RGB2V
        - RGB2Y
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:1918,21'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:1920,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:1939,25'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1941,4'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1942,9'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1943,9'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1944,9'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1952,25'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1954,4'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1955,9'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1956,9'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1957,9'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1971,25'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1973,4'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1974,9'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1975,9'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1976,9'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1990,25'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1992,4'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1993,9'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1994,9'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1995,9'
          Dst:             RGB2V
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - functionName:    RGB2Y
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      char
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          105
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    43
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:281,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_internal.h:281,9'
          Dst:             winpr_int_assert
    - functionName:    RGB2U
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      char
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          106
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    31
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:288,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_internal.h:288,9'
          Dst:             winpr_int_assert
    - functionName:    RGB2V
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      char
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          106
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    31
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:295,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_internal.h:295,9'
          Dst:             winpr_int_assert
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_RGBToAVC444YUVv2_ANY
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2057
      functionLinenumberEnd: 2147
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          353
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - general_RGBToAVC444YUVv2_ANY_DOUBLE_ROW
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:2128,3'
          Dst:             general_RGBToAVC444YUVv2_ANY_DOUBLE_ROW
        - Src:             'libfreerdp/primitives/prim_YUV.c:2141,3'
          Dst:             general_RGBToAVC444YUVv2_ANY_DOUBLE_ROW
    - functionName:    general_RGBToAVC444YUVv2_BGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2310
      functionLinenumberEnd: 2350
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          331
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - int_general_RGBToAVC444YUVv2_BGRX_DOUBLE_ROW
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:2331,3'
          Dst:             int_general_RGBToAVC444YUVv2_BGRX_DOUBLE_ROW
        - Src:             'libfreerdp/primitives/prim_YUV.c:2344,3'
          Dst:             int_general_RGBToAVC444YUVv2_BGRX_DOUBLE_ROW
    - functionName:    int_general_RGBToAVC444YUVv2_BGRX_DOUBLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2157
      functionLinenumberEnd: 2287
      functionDepth:   0
      returnType:      void
      argCount:        16
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         79
      ICount:          628
      EdgeCount:       95
      CyclomaticComplexity: 18
      functionsReached:
        - RGB2U
        - RGB2V
        - RGB2Y
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:2158,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:2159,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:2160,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:2161,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:2162,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:2185,9'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:2186,9'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:2187,9'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:2196,9'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:2197,9'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:2198,9'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:2213,9'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:2214,9'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:2215,9'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:2230,9'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:2231,9'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:2232,9'
          Dst:             RGB2V
    - functionName:    general_RGBToAVC444YUV_ANY_DOUBLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1665
      functionLinenumberEnd: 1775
      functionDepth:   0
      returnType:      void
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          601
      EdgeCount:       87
      CyclomaticComplexity: 17
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - FreeRDPReadColor
        - FreeRDPSplitColor
        - RGB2U
        - RGB2V
        - RGB2Y
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:1666,21'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:1687,25'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1689,4'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1690,28'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1691,28'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1692,28'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1700,25'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1702,4'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1703,10'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1704,10'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1705,10'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1713,25'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1715,4'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1716,16'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1717,16'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1718,16'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1726,25'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1728,4'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1729,10'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1730,10'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1731,10'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1747,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:1747,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:1749,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:1749,22'
          Dst:             winpr_int_assert
    - functionName:    general_RGBToAVC444YUV_RGBX_DOUBLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1513
      functionLinenumberEnd: 1613
      functionDepth:   0
      returnType:      void
      argCount:        11
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         78
      ICount:          611
      EdgeCount:       93
      CyclomaticComplexity: 17
      functionsReached:
        - RGB2U
        - RGB2V
        - RGB2Y
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:1514,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:1536,28'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1537,28'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1538,28'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1547,10'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1548,10'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1549,10'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1558,16'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1559,16'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1560,16'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1569,10'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1570,10'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1571,10'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1587,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:1587,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:1588,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:1588,22'
          Dst:             winpr_int_assert
    - functionName:    general_RGBToAVC444YUV_ANY
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1782
      functionLinenumberEnd: 1863
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          269
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - general_RGBToAVC444YUV_ANY_DOUBLE_ROW
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:1844,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:1859,3'
          Dst:             general_RGBToAVC444YUV_ANY_DOUBLE_ROW
    - functionName:    general_RGBToAVC444YUV_RGBX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1621
      functionLinenumberEnd: 1657
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          323
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - general_RGBToAVC444YUV_RGBX_DOUBLE_ROW
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:1643,3'
          Dst:             general_RGBToAVC444YUV_RGBX_DOUBLE_ROW
        - Src:             'libfreerdp/primitives/prim_YUV.c:1654,3'
          Dst:             general_RGBToAVC444YUV_RGBX_DOUBLE_ROW
    - functionName:    general_RGBToAVC444YUV_BGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1470
      functionLinenumberEnd: 1505
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          299
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - int_general_RGBToAVC444YUV_BGRX_DOUBLE_ROW
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:1490,3'
          Dst:             int_general_RGBToAVC444YUV_BGRX_DOUBLE_ROW
        - Src:             'libfreerdp/primitives/prim_YUV.c:1501,3'
          Dst:             int_general_RGBToAVC444YUV_BGRX_DOUBLE_ROW
    - functionName:    int_general_RGBToAVC444YUV_BGRX_DOUBLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1348
      functionLinenumberEnd: 1450
      functionDepth:   0
      returnType:      void
      argCount:        12
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         78
      ICount:          628
      EdgeCount:       93
      CyclomaticComplexity: 17
      functionsReached:
        - RGB2U
        - RGB2V
        - RGB2Y
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:1349,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:1373,28'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1374,28'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1375,28'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1384,10'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1385,10'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1386,10'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1395,16'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1396,16'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1397,16'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1406,10'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1407,10'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1408,10'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1424,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:1424,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:1425,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:1425,22'
          Dst:             winpr_int_assert
    - functionName:    general_ChromaV2ToYUV444
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          383
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_ChromaV1ToYUV444
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          419
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_LumaToYUV444
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          449
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fillI444_single
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 898
      functionLinenumberEnd: 917
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          139
      EdgeCount:       27
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - FreeRDPReadColor
        - FreeRDPSplitColor
        - RGB2U
        - RGB2V
        - RGB2Y
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:899,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:900,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:901,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:902,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:904,21'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:909,23'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:910,2'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:911,17'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:912,17'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:913,17'
          Dst:             RGB2V
    - functionName:    general_RGBToI444_SINGLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 922
      functionLinenumberEnd: 927
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          50
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - fillI444_single
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:925,3'
          Dst:             fillI444_single
    - functionName:    general_RGBToI444_8u_RGB
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 933
      functionLinenumberEnd: 947
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          104
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - general_RGBToI444_SINGLE_ROW
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:944,3'
          Dst:             general_RGBToI444_SINGLE_ROW
    - functionName:    fillYUV_single
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 800
      functionLinenumberEnd: 821
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          162
      EdgeCount:       32
      CyclomaticComplexity: 3
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - FreeRDPReadColor
        - FreeRDPSplitColor
        - RGB2U
        - RGB2V
        - RGB2Y
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:801,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:802,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:803,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:804,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:805,21'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:812,24'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:813,3'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:814,18'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:815,18'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:816,18'
          Dst:             RGB2V
    - functionName:    fillYUV
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 760
      functionLinenumberEnd: 795
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          227
      EdgeCount:       37
      CyclomaticComplexity: 4
      functionsReached:
        - CLIP
        - FreeRDPGetBytesPerPixel
        - FreeRDPReadColor
        - FreeRDPSplitColor
        - RGB2U
        - RGB2V
        - RGB2Y
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:761,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:762,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:763,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:764,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:765,21'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:776,25'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:777,4'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:778,19'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:779,19'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:780,19'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:791,18'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_YUV.c:794,18'
          Dst:             CLIP
    - functionName:    CLIP
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_RGBToYUV444_SINGLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 839
      functionLinenumberEnd: 846
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - fillYUV_single
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:841,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:844,3'
          Dst:             fillYUV_single
    - functionName:    general_RGBToYUV444_DOUBLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 827
      functionLinenumberEnd: 834
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - fillYUV
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:829,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:832,3'
          Dst:             fillYUV
    - functionName:    BGRX_fillYUV_single
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 697
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          147
      EdgeCount:       32
      CyclomaticComplexity: 3
      functionsReached:
        - FreeRDPReadColor
        - FreeRDPSplitColor
        - RGB2U
        - RGB2V
        - RGB2Y
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:678,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:679,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:680,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:681,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:691,24'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:692,3'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:693,20'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:694,20'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:695,20'
          Dst:             RGB2V
    - functionName:    BGRX_fillYUV
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 643
      functionLinenumberEnd: 672
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          274
      EdgeCount:       37
      CyclomaticComplexity: 4
      functionsReached:
        - CONDITIONAL_CLIP
        - FreeRDPReadColor
        - FreeRDPSplitColor
        - RGB2U
        - RGB2V
        - RGB2Y
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:644,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:645,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:646,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:647,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:659,25'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:660,4'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:661,24'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:662,24'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:663,24'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:669,18'
          Dst:             CONDITIONAL_CLIP
        - Src:             'libfreerdp/primitives/prim_YUV.c:671,18'
          Dst:             CONDITIONAL_CLIP
    - functionName:    CONDITIONAL_CLIP
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - CLIP
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:217,13'
          Dst:             CLIP
    - functionName:    general_BGRXToYUV444_SINGLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 715
      functionLinenumberEnd: 722
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - BGRX_fillYUV_single
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:717,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:720,3'
          Dst:             BGRX_fillYUV_single
    - functionName:    general_BGRXToYUV444_DOUBLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 710
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - BGRX_fillYUV
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:705,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:708,3'
          Dst:             BGRX_fillYUV
    - functionName:    general_RGBToYUV444_8u_P3AC4R_RGB
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 853
      functionLinenumberEnd: 877
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          221
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - general_RGBToYUV444_DOUBLE_ROW
        - general_RGBToYUV444_SINGLE_ROW
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:865,3'
          Dst:             general_RGBToYUV444_DOUBLE_ROW
        - Src:             'libfreerdp/primitives/prim_YUV.c:874,3'
          Dst:             general_RGBToYUV444_SINGLE_ROW
    - functionName:    general_RGBToYUV444_8u_P3AC4R_BGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 729
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          217
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - general_BGRXToYUV444_DOUBLE_ROW
        - general_BGRXToYUV444_SINGLE_ROW
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:741,3'
          Dst:             general_BGRXToYUV444_DOUBLE_ROW
        - Src:             'libfreerdp/primitives/prim_YUV.c:751,3'
          Dst:             general_BGRXToYUV444_SINGLE_ROW
    - functionName:    general_RGBToYUV420_ANY
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1202
      functionLinenumberEnd: 1320
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          575
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - FreeRDPReadColor
        - FreeRDPSplitColor
        - RGB2U
        - RGB2V
        - RGB2Y
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:1203,21'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:1232,12'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1233,4'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1237,15'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1242,13'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1243,5'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1247,16'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1251,12'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1252,4'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1256,15'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1261,13'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1262,5'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1266,16'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1272,14'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1273,14'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1292,19'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1293,4'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1297,15'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1302,13'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1303,5'
          Dst:             FreeRDPSplitColor
        - Src:             'libfreerdp/primitives/prim_YUV.c:1307,16'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1313,14'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1314,14'
          Dst:             RGB2V
    - functionName:    general_RGBToYUV420_RGBX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1080
      functionLinenumberEnd: 1195
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          597
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - RGB2U
        - RGB2V
        - RGB2Y
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:1108,15'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1119,16'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1130,15'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1142,16'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1148,14'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1149,14'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1171,15'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1182,16'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1188,14'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1189,14'
          Dst:             RGB2V
    - functionName:    general_RGBToYUV420_BGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 966
      functionLinenumberEnd: 1073
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          596
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - RGB2U
        - RGB2V
        - RGB2Y
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:997,15'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1005,16'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1012,15'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1020,16'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1026,14'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1027,14'
          Dst:             RGB2V
        - Src:             'libfreerdp/primitives/prim_YUV.c:1052,15'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1060,16'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/prim_YUV.c:1066,14'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/prim_YUV.c:1067,14'
          Dst:             RGB2V
    - functionName:    general_YUV444ToRGB_SINGLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          110
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - getPixelWriteFunction
        - winpr_int_assert
        - writeYUVPixel
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:377,30'
          Dst:             getPixelWriteFunction
        - Src:             'libfreerdp/primitives/prim_YUV.c:379,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:387,11'
          Dst:             writeYUVPixel
    - functionName:    getPixelWriteFunction
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       28
      CyclomaticComplexity: 15
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/prim_internal.h:179,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    writeYUVPixel
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - YUV2B
        - YUV2G
        - YUV2R
        - winpr_int_assert
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:301,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_internal.h:302,17'
          Dst:             YUV2R
        - Src:             'libfreerdp/primitives/prim_internal.h:303,17'
          Dst:             YUV2G
        - Src:             'libfreerdp/primitives/prim_internal.h:304,17'
          Dst:             YUV2B
        - Src:             'libfreerdp/primitives/prim_internal.h:305,27'
          Dst:             FreeRDPGetBytesPerPixel
    - functionName:    YUV2R
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      char
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - C
        - CLIP
        - D
        - E
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:251,25'
          Dst:             C
        - Src:             'libfreerdp/primitives/prim_internal.h:251,36'
          Dst:             D
        - Src:             'libfreerdp/primitives/prim_internal.h:251,49'
          Dst:             E
        - Src:             'libfreerdp/primitives/prim_internal.h:253,9'
          Dst:             CLIP
    - functionName:    YUV2G
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      char
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - C
        - CLIP
        - D
        - E
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:259,25'
          Dst:             C
        - Src:             'libfreerdp/primitives/prim_internal.h:259,37'
          Dst:             D
        - Src:             'libfreerdp/primitives/prim_internal.h:259,50'
          Dst:             E
        - Src:             'libfreerdp/primitives/prim_internal.h:261,9'
          Dst:             CLIP
    - functionName:    YUV2B
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      char
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - C
        - CLIP
        - D
        - E
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:267,25'
          Dst:             C
        - Src:             'libfreerdp/primitives/prim_internal.h:267,38'
          Dst:             D
        - Src:             'libfreerdp/primitives/prim_internal.h:267,49'
          Dst:             E
        - Src:             'libfreerdp/primitives/prim_internal.h:269,9'
          Dst:             CLIP
    - functionName:    C
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    D
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    E
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelARGB
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          41
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelXRGB
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelABGR
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          41
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelXBGR
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelRGBA
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          41
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelRGBX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelBGRA
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          41
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelBGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelGenericAlpha
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetColor
        - FreeRDPWriteColor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:160,17'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/primitives/prim_internal.h:161,2'
          Dst:             FreeRDPWriteColor
    - functionName:    writePixelGeneric
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetColor
        - FreeRDPWriteColorIgnoreAlpha
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:169,17'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/primitives/prim_internal.h:170,2'
          Dst:             FreeRDPWriteColorIgnoreAlpha
    - functionName:    general_YUV444ToRGB_DOUBLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          382
      EdgeCount:       79
      CyclomaticComplexity: 13
      functionsReached:
        - CONDITIONAL_CLIP
        - getPixelWriteFunction
        - winpr_int_assert
        - writeYUVPixel
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:344,30'
          Dst:             getPixelWriteFunction
        - Src:             'libfreerdp/primitives/prim_YUV.c:346,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:360,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:360,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:360,10'
          Dst:             CONDITIONAL_CLIP
        - Src:             'libfreerdp/primitives/prim_YUV.c:364,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:364,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:364,10'
          Dst:             CONDITIONAL_CLIP
        - Src:             'libfreerdp/primitives/prim_YUV.c:366,15'
          Dst:             writeYUVPixel
    - functionName:    general_YUV444ToBGRX_SINGLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          105
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
        - writePixelBGRX
        - writeYUVPixel
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:467,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:475,11'
          Dst:             writeYUVPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:475,11'
          Dst:             writePixelBGRX
    - functionName:    general_YUV444ToBGRX_DOUBLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          283
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - CONDITIONAL_CLIP
        - winpr_int_assert
        - writePixelBGRX
        - writeYUVPixel
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:436,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:441,21'
          Dst:             CONDITIONAL_CLIP
        - Src:             'libfreerdp/primitives/prim_YUV.c:444,21'
          Dst:             CONDITIONAL_CLIP
        - Src:             'libfreerdp/primitives/prim_YUV.c:456,15'
          Dst:             writeYUVPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:456,15'
          Dst:             writePixelBGRX
    - functionName:    general_YUV444ToRGB_8u_P3AC4R_general
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          259
      EdgeCount:       31
      CyclomaticComplexity: 4
      functionsReached:
        - general_YUV444ToRGB_DOUBLE_ROW
        - general_YUV444ToRGB_SINGLE_ROW
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:398,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:399,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:400,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:416,3'
          Dst:             general_YUV444ToRGB_DOUBLE_ROW
        - Src:             'libfreerdp/primitives/prim_YUV.c:425,3'
          Dst:             general_YUV444ToRGB_SINGLE_ROW
    - functionName:    general_YUV444ToRGB_8u_P3AC4R_BGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          259
      EdgeCount:       31
      CyclomaticComplexity: 4
      functionsReached:
        - general_YUV444ToBGRX_DOUBLE_ROW
        - general_YUV444ToBGRX_SINGLE_ROW
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:486,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:487,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:488,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:501,3'
          Dst:             general_YUV444ToBGRX_DOUBLE_ROW
        - Src:             'libfreerdp/primitives/prim_YUV.c:511,3'
          Dst:             general_YUV444ToBGRX_SINGLE_ROW
    - functionName:    general_YUV420ToRGB_8u_P3AC4R_single_line
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 599
      functionDepth:   0
      returnType:      void
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          170
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - writeYUVPixel
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:588,3'
          Dst:             writeYUVPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:589,3'
          Dst:             writeYUVPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:597,3'
          Dst:             writeYUVPixel
    - functionName:    general_YUV420ToRGB_8u_P3AC4R_double_line
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      void
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          253
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - writeYUVPixel
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:553,3'
          Dst:             writeYUVPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:554,3'
          Dst:             writeYUVPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:558,3'
          Dst:             writeYUVPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:559,3'
          Dst:             writeYUVPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:567,3'
          Dst:             writeYUVPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:570,3'
          Dst:             writeYUVPixel
    - functionName:    primitives_init_YUV_neon
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.h'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - IsProcessorFeaturePresent
        - primitives_init_YUV_neon_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.h:45,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_YUV.h:48,2'
          Dst:             primitives_init_YUV_neon_int
    - functionName:    primitives_init_YUV_sse41
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - IsProcessorFeaturePresent
        - IsProcessorFeaturePresentEx
        - primitives_init_YUV_sse41_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.h:35,7'
          Dst:             IsProcessorFeaturePresentEx
        - Src:             'libfreerdp/primitives/prim_YUV.h:36,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_YUV.h:39,2'
          Dst:             primitives_init_YUV_sse41_int
    - functionName:    primitives_init_YUV_opt
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2387
      functionLinenumberEnd: 2391
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - primitives_init_YUV
        - primitives_init_YUV_neon
        - primitives_init_YUV_sse41
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:2388,2'
          Dst:             primitives_init_YUV
        - Src:             'libfreerdp/primitives/prim_YUV.c:2389,2'
          Dst:             primitives_init_YUV_sse41
        - Src:             'libfreerdp/primitives/prim_YUV.c:2390,2'
          Dst:             primitives_init_YUV_neon
    - functionName:    primitives_init_YUV
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2374
      functionLinenumberEnd: 2384
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          33
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_YUV420ToRGB_8u_P3AC4R
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 637
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          240
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - general_YUV420ToRGB_8u_P3AC4R_double_line
        - general_YUV420ToRGB_8u_P3AC4R_single_line
        - getPixelWriteFunction
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:606,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YUV.c:607,27'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_YUV.c:608,30'
          Dst:             getPixelWriteFunction
        - Src:             'libfreerdp/primitives/prim_YUV.c:621,3'
          Dst:             general_YUV420ToRGB_8u_P3AC4R_double_line
        - Src:             'libfreerdp/primitives/prim_YUV.c:633,3'
          Dst:             general_YUV420ToRGB_8u_P3AC4R_single_line
    - functionName:    general_YUV444ToRGB_8u_P3AC4R
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - general_YUV444ToRGB_8u_P3AC4R_BGRX
        - general_YUV444ToRGB_8u_P3AC4R_general
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/prim_YUV.c:521,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:525,11'
          Dst:             general_YUV444ToRGB_8u_P3AC4R_BGRX
        - Src:             'libfreerdp/primitives/prim_YUV.c:528,11'
          Dst:             general_YUV444ToRGB_8u_P3AC4R_general
    - functionName:    general_RGBToYUV420_8u_P3AC4R
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1327
      functionLinenumberEnd: 1341
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          73
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - general_RGBToYUV420_ANY
        - general_RGBToYUV420_BGRX
        - general_RGBToYUV420_RGBX
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/prim_YUV.c:1328,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:1332,11'
          Dst:             general_RGBToYUV420_BGRX
        - Src:             'libfreerdp/primitives/prim_YUV.c:1336,11'
          Dst:             general_RGBToYUV420_RGBX
        - Src:             'libfreerdp/primitives/prim_YUV.c:1339,11'
          Dst:             general_RGBToYUV420_ANY
    - functionName:    general_RGBToYUV444_8u_P3AC4R
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 884
      functionLinenumberEnd: 893
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - general_RGBToYUV444_8u_P3AC4R_BGRX
        - general_RGBToYUV444_8u_P3AC4R_RGB
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/prim_YUV.c:885,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:889,11'
          Dst:             general_RGBToYUV444_8u_P3AC4R_BGRX
        - Src:             'libfreerdp/primitives/prim_YUV.c:891,11'
          Dst:             general_RGBToYUV444_8u_P3AC4R_RGB
    - functionName:    general_RGBToI444_8u
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 954
      functionLinenumberEnd: 958
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 5
      functionsReached:
        - general_RGBToI444_8u_RGB
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/prim_YUV.c:955,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:958,11'
          Dst:             general_RGBToI444_8u_RGB
    - functionName:    general_YUV420CombineToYUV444
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          153
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - general_ChromaV1ToYUV444
        - general_ChromaV2ToYUV444
        - general_LumaToYUV444
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/prim_YUV.c:240,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:243,11'
          Dst:             general_LumaToYUV444
        - Src:             'libfreerdp/primitives/prim_YUV.c:246,11'
          Dst:             general_ChromaV1ToYUV444
        - Src:             'libfreerdp/primitives/prim_YUV.c:249,11'
          Dst:             general_ChromaV2ToYUV444
    - functionName:    general_YUV444SplitToYUV420
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          423
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_RGBToAVC444YUV
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1872
      functionLinenumberEnd: 1907
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          242
      EdgeCount:       66
      CyclomaticComplexity: 18
      functionsReached:
        - general_RGBToAVC444YUV_ANY
        - general_RGBToAVC444YUV_BGRX
        - general_RGBToAVC444YUV_RGBX
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/prim_YUV.c:1888,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:1893,11'
          Dst:             general_RGBToAVC444YUV_BGRX
        - Src:             'libfreerdp/primitives/prim_YUV.c:1898,11'
          Dst:             general_RGBToAVC444YUV_RGBX
        - Src:             'libfreerdp/primitives/prim_YUV.c:1902,11'
          Dst:             general_RGBToAVC444YUV_ANY
    - functionName:    general_RGBToAVC444YUVv2
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2357
      functionLinenumberEnd: 2371
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - general_RGBToAVC444YUVv2_ANY
        - general_RGBToAVC444YUVv2_BGRX
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/prim_YUV.c:2358,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:2362,11'
          Dst:             general_RGBToAVC444YUVv2_BGRX
        - Src:             'libfreerdp/primitives/prim_YUV.c:2366,11'
          Dst:             general_RGBToAVC444YUVv2_ANY
    - functionName:    general_RGBToAVC444YUVv2_BGRX_DOUBLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2297
      functionLinenumberEnd: 2302
      functionDepth:   0
      returnType:      void
      argCount:        16
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          60
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - int_general_RGBToAVC444YUVv2_BGRX_DOUBLE_ROW
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:2298,2'
          Dst:             int_general_RGBToAVC444YUVv2_BGRX_DOUBLE_ROW
    - functionName:    general_RGBToAVC444YUV_BGRX_DOUBLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YUV.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1459
      functionLinenumberEnd: 1462
      functionDepth:   0
      returnType:      void
      argCount:        12
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - int_general_RGBToAVC444YUV_BGRX_DOUBLE_ROW
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YUV.c:1460,2'
          Dst:             int_general_RGBToAVC444YUV_BGRX_DOUBLE_ROW
    - functionName:    writePixelGeneric
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetColor
        - FreeRDPWriteColorIgnoreAlpha
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:169,17'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/primitives/prim_internal.h:170,2'
          Dst:             FreeRDPWriteColorIgnoreAlpha
    - functionName:    writePixelGenericAlpha
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetColor
        - FreeRDPWriteColor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:160,17'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/primitives/prim_internal.h:161,2'
          Dst:             FreeRDPWriteColor
    - functionName:    writePixelBGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelBGRA
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          41
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelRGBX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelRGBA
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          41
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelXBGR
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelABGR
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          41
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelXRGB
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writePixelARGB
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          41
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CLIP
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    convert
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YCoCg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getPixelWriteFunction
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       28
      CyclomaticComplexity: 15
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/prim_internal.h:179,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - functionName:    primitives_init_YCoCg_neon
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YCoCg.h'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - IsProcessorFeaturePresent
        - primitives_init_YCoCg_neon_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YCoCg.h:48,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_YCoCg.h:50,2'
          Dst:             primitives_init_YCoCg_neon_int
    - functionName:    primitives_init_YCoCg_ssse3
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YCoCg.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          44
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - IsProcessorFeaturePresent
        - IsProcessorFeaturePresentEx
        - primitives_init_YCoCg_ssse3_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YCoCg.h:36,7'
          Dst:             IsProcessorFeaturePresentEx
        - Src:             'libfreerdp/primitives/prim_YCoCg.h:37,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_YCoCg.h:38,7'
          Dst:             IsProcessorFeaturePresent
        - Src:             'libfreerdp/primitives/prim_YCoCg.h:41,2'
          Dst:             primitives_init_YCoCg_ssse3_int
    - functionName:    primitives_init_YCoCg_opt
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YCoCg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - primitives_init_YCoCg
        - primitives_init_YCoCg_neon
        - primitives_init_YCoCg_ssse3
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YCoCg.c:79,2'
          Dst:             primitives_init_YCoCg
        - Src:             'libfreerdp/primitives/prim_YCoCg.c:80,2'
          Dst:             primitives_init_YCoCg_ssse3
        - Src:             'libfreerdp/primitives/prim_YCoCg.c:81,2'
          Dst:             primitives_init_YCoCg_neon
    - functionName:    primitives_init_YCoCg
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YCoCg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    general_YCoCgToRGB_8u_AC4R
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_YCoCg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          316
      EdgeCount:       65
      CyclomaticComplexity: 11
      functionsReached:
        - CLIP
        - FreeRDPGetBytesPerPixel
        - convert
        - getPixelWriteFunction
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_YCoCg.c:42,27'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/prim_YCoCg.c:43,30'
          Dst:             getPixelWriteFunction
        - Src:             'libfreerdp/primitives/prim_YCoCg.c:47,32'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YCoCg.c:47,32'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YCoCg.c:48,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YCoCg.c:48,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_YCoCg.c:52,21'
          Dst:             convert
        - Src:             'libfreerdp/primitives/prim_YCoCg.c:53,21'
          Dst:             convert
        - Src:             'libfreerdp/primitives/prim_YCoCg.c:64,51'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_YCoCg.c:64,60'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/prim_YCoCg.c:64,69'
          Dst:             CLIP
    - 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:    primitives_init_colors_neon_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/neon/prim_colors_neon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/neon/prim_colors_neon.c:271,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:    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:    primitives_init_YCoCg_neon_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/neon/prim_YCoCg_neon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/neon/prim_YCoCg_neon.c:165,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:    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:    primitives_init_YUV_neon_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/neon/prim_YUV_neon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 826
      functionLinenumberEnd: 837
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/neon/prim_YUV_neon.c:834,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    mm_between_epi16_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_colors_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          33
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mm_prefetch_buffer
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_colors_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sse2_yCbCrToRGB_16s8u_P3AC4R_RGBX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_colors_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         110
      ICount:          1398
      EdgeCount:       122
      CyclomaticComplexity: 14
      functionsReached:
        - CLIP
        - LOAD_SI128
        - STORE_SI128
        - mm_between_epi16_int
        - mm_prefetch_buffer
        - mm_set1_epu32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:296,2'
          Dst:             mm_prefetch_buffer
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:297,2'
          Dst:             mm_prefetch_buffer
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:298,2'
          Dst:             mm_prefetch_buffer
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:324,17'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:329,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:332,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:338,4'
          Dst:             mm_between_epi16_int
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:344,4'
          Dst:             mm_between_epi16_int
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:349,4'
          Dst:             mm_between_epi16_int
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:350,17'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:355,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:358,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:364,4'
          Dst:             mm_between_epi16_int
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:370,4'
          Dst:             mm_between_epi16_int
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:375,4'
          Dst:             mm_between_epi16_int
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:392,10'
          Dst:             mm_set1_epu32
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:402,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:404,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:406,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:408,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:423,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:423,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:424,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:424,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:425,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:425,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:426,15'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:427,15'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:428,15'
          Dst:             CLIP
    - functionName:    LOAD_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    39
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mm_set1_epu32
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          33
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    STORE_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    27
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CLIP
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sse2_yCbCrToRGB_16s8u_P3AC4R_BGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_colors_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         110
      ICount:          1398
      EdgeCount:       122
      CyclomaticComplexity: 14
      functionsReached:
        - CLIP
        - LOAD_SI128
        - STORE_SI128
        - mm_between_epi16_int
        - mm_prefetch_buffer
        - mm_set1_epu32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:127,2'
          Dst:             mm_prefetch_buffer
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:128,2'
          Dst:             mm_prefetch_buffer
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:129,2'
          Dst:             mm_prefetch_buffer
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:155,17'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:160,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:163,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:169,4'
          Dst:             mm_between_epi16_int
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:175,4'
          Dst:             mm_between_epi16_int
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:180,4'
          Dst:             mm_between_epi16_int
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:181,17'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:186,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:189,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:195,4'
          Dst:             mm_between_epi16_int
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:201,4'
          Dst:             mm_between_epi16_int
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:206,4'
          Dst:             mm_between_epi16_int
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:223,10'
          Dst:             mm_set1_epu32
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:233,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:235,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:237,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:239,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:254,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:254,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:255,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:255,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:256,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:256,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:257,15'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:258,15'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:259,15'
          Dst:             CLIP
    - functionName:    sse2_RGBToRGB_16s8u_P3AC4R_XRGB
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_colors_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 902
      functionLinenumberEnd: 1004
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          414
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - CLIP
        - LOAD_SI128
        - STORE_SI128
        - mm_set1_epu32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:906,20'
          Dst:             mm_set1_epu32
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:928,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:930,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:937,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:939,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:946,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:948,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:965,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:970,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:975,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:980,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:988,19'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:989,19'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:990,19'
          Dst:             CLIP
    - functionName:    sse2_RGBToRGB_16s8u_P3AC4R_XBGR
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_colors_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 791
      functionLinenumberEnd: 893
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          414
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - CLIP
        - LOAD_SI128
        - STORE_SI128
        - mm_set1_epu32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:796,20'
          Dst:             mm_set1_epu32
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:817,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:819,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:826,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:828,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:835,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:837,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:854,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:859,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:864,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:869,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:877,19'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:878,19'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:879,19'
          Dst:             CLIP
    - functionName:    sse2_RGBToRGB_16s8u_P3AC4R_RGBX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_colors_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          414
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - CLIP
        - LOAD_SI128
        - STORE_SI128
        - mm_set1_epu32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:685,20'
          Dst:             mm_set1_epu32
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:706,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:708,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:715,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:717,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:724,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:726,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:743,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:748,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:753,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:758,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:766,19'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:767,19'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:768,19'
          Dst:             CLIP
    - functionName:    sse2_RGBToRGB_16s8u_P3AC4R_BGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_colors_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 574
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          414
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - CLIP
        - LOAD_SI128
        - STORE_SI128
        - mm_set1_epu32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:579,20'
          Dst:             mm_set1_epu32
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:600,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:602,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:609,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:611,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:618,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:620,10'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:632,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:637,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:642,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:647,6'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:655,19'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:656,19'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:657,19'
          Dst:             CLIP
    - functionName:    sse2_RGBToYCbCr_16s16s_P3P3
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_colors_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         73
      ICount:          1232
      EdgeCount:       90
      CyclomaticComplexity: 19
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - mm_between_epi16_int
        - mm_prefetch_buffer
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:501,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:501,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:502,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:502,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:504,2'
          Dst:             mm_prefetch_buffer
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:505,2'
          Dst:             mm_prefetch_buffer
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:506,2'
          Dst:             mm_prefetch_buffer
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:525,16'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:526,16'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:527,16'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:538,4'
          Dst:             mm_between_epi16_int
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:539,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:545,4'
          Dst:             mm_between_epi16_int
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:546,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:552,4'
          Dst:             mm_between_epi16_int
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:553,4'
          Dst:             STORE_SI128
    - functionName:    sse2_yCbCrToRGB_16s8u_P3AC4R
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_colors_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          156
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - sse2_yCbCrToRGB_16s8u_P3AC4R_BGRX
        - sse2_yCbCrToRGB_16s8u_P3AC4R_RGBX
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/sse/prim_colors_sse2.c:451,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:455,11'
          Dst:             sse2_yCbCrToRGB_16s8u_P3AC4R_BGRX
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:459,11'
          Dst:             sse2_yCbCrToRGB_16s8u_P3AC4R_RGBX
    - functionName:    sse2_RGBToRGB_16s8u_P3AC4R
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_colors_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1013
      functionLinenumberEnd: 1039
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          188
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - sse2_RGBToRGB_16s8u_P3AC4R_BGRX
        - sse2_RGBToRGB_16s8u_P3AC4R_RGBX
        - sse2_RGBToRGB_16s8u_P3AC4R_XBGR
        - sse2_RGBToRGB_16s8u_P3AC4R_XRGB
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/sse/prim_colors_sse2.c:1018,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:1022,11'
          Dst:             sse2_RGBToRGB_16s8u_P3AC4R_BGRX
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:1026,11'
          Dst:             sse2_RGBToRGB_16s8u_P3AC4R_RGBX
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:1030,11'
          Dst:             sse2_RGBToRGB_16s8u_P3AC4R_XBGR
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:1034,11'
          Dst:             sse2_RGBToRGB_16s8u_P3AC4R_XRGB
    - 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:    primitives_init_colors_sse2_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_colors_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1043
      functionLinenumberEnd: 1056
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - primitives_get_generic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:1045,12'
          Dst:             primitives_get_generic
        - Src:             'libfreerdp/primitives/sse/prim_colors_sse2.c:1047,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    mm_set1_epu32
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          33
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    STORE_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    34
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mm_set1_epu8
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          93
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sse2_set_32u
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_set_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          263
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - STORE_SI128
        - mm_set1_epu32
        - primitives_get_generic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:121,29'
          Dst:             primitives_get_generic
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:150,9'
          Dst:             mm_set1_epu32
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:158,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:160,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:162,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:164,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:166,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:168,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:170,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:172,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:174,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:176,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:178,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:180,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:182,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:184,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:186,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:188,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:199,3'
          Dst:             STORE_SI128
    - functionName:    sse2_set_32s
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_set_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sse2_set_32u
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:214,9'
          Dst:             sse2_set_32u
    - functionName:    sse2_set_8u
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_set_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          239
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - STORE_SI128
        - mm_set1_epu8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:57,9'
          Dst:             mm_set1_epu8
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:65,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:67,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:69,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:71,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:73,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:75,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:77,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:79,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:81,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:83,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:85,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:87,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:89,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:91,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:93,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:95,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:106,3'
          Dst:             STORE_SI128
    - 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:    primitives_init_set_sse2_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_set_sse2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - primitives_get_generic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:222,12'
          Dst:             primitives_get_generic
        - Src:             'libfreerdp/primitives/sse/prim_set_sse2.c:226,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    STORE_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    23
      BranchProfiles:  []
      Callsites:       []
    - functionName:    LOAD_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    28
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sse3_add_16s_inplace
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_add_sse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          655
      EdgeCount:       64
      CyclomaticComplexity: 15
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:79,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:80,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:81,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:82,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:83,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:84,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:85,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:86,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:93,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:94,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:95,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:96,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:98,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:99,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:100,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:101,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:117,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:118,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:119,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:120,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:121,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:122,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:123,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:124,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:131,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:132,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:133,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:134,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:136,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:137,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:138,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:139,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:155,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:156,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:160,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:161,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:168,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:168,49'
          Dst:             winpr_int_assert
    - functionName:    sse3_add_16s
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_add_sse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          293
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:35,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:35,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:35,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:35,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:35,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:35,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:35,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:35,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:35,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:35,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:35,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:35,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:35,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:35,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:35,1'
          Dst:             STORE_SI128
    - 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:    primitives_init_add_sse3_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_add_sse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - primitives_get_generic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:178,12'
          Dst:             primitives_get_generic
        - Src:             'libfreerdp/primitives/sse/prim_add_sse3.c:180,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    STORE_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    LOAD_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mm_set1_epu32
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          33
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sse2_alphaComp_argb
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_alphaComp_sse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          657
      EdgeCount:       42
      CyclomaticComplexity: 10
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - mm_set1_epu32
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/sse/prim_alphaComp_sse3.c:73,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_alphaComp_sse3.c:63,17'
          Dst:             mm_set1_epu32
        - Src:             'libfreerdp/primitives/sse/prim_alphaComp_sse3.c:126,11'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_alphaComp_sse3.c:129,11'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_alphaComp_sse3.c:175,4'
          Dst:             STORE_SI128
    - 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:    primitives_init_alphaComp_sse3_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_alphaComp_sse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - primitives_get_generic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_alphaComp_sse3.c:207,12'
          Dst:             primitives_get_generic
        - Src:             'libfreerdp/primitives/sse/prim_alphaComp_sse3.c:208,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    STORE_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    LOAD_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mm_set1_epu32
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          33
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sse3_orC_32u
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_andor_sse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          311
      EdgeCount:       42
      CyclomaticComplexity: 8
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - mm_set1_epu32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:36,1'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:36,1'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:36,1'
          Dst:             mm_set1_epu32
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:36,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:36,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:36,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:36,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:36,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:36,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:36,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:36,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:36,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:36,1'
          Dst:             STORE_SI128
    - functionName:    sse3_andC_32u
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_andor_sse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          311
      EdgeCount:       42
      CyclomaticComplexity: 8
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - mm_set1_epu32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:34,1'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:34,1'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:34,1'
          Dst:             mm_set1_epu32
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:34,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:34,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:34,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:34,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:34,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:34,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:34,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:34,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:34,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:34,1'
          Dst:             STORE_SI128
    - 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:    primitives_init_andor_sse3_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_andor_sse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - primitives_get_generic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:44,12'
          Dst:             primitives_get_generic
        - Src:             'libfreerdp/primitives/sse/prim_andor_sse3.c:46,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    STORE_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    45
      BranchProfiles:  []
      Callsites:       []
    - functionName:    LOAD_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    45
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sse2_rShiftC_16u
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_shift_sse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          371
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:43,1'
          Dst:             STORE_SI128
    - functionName:    sse2_lShiftC_16u
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_shift_sse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          372
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:40,1'
          Dst:             STORE_SI128
    - functionName:    sse2_rShiftC_16s
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_shift_sse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          371
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:37,1'
          Dst:             STORE_SI128
    - functionName:    sse2_lShiftC_16s
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_shift_sse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          372
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:34,1'
          Dst:             STORE_SI128
    - functionName:    sse2_lShiftC_16s_inplace
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_shift_sse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          507
      EdgeCount:       58
      CyclomaticComplexity: 14
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:83,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:84,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:85,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:86,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:87,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:88,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:89,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:90,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:103,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:104,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:105,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:106,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:107,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:108,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:109,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:110,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:121,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:126,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:132,53'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:132,53'
          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:    primitives_init_shift_sse3_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_shift_sse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - primitives_get_generic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:147,12'
          Dst:             primitives_get_generic
        - Src:             'libfreerdp/primitives/sse/prim_shift_sse3.c:149,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    STORE_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    LOAD_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssse3_sign_16s
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_sign_ssse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         76
      ICount:          1038
      EdgeCount:       93
      CyclomaticComplexity: 19
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:57,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:57,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:84,11'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:86,11'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:88,11'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:90,11'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:96,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:98,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:100,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:102,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:123,11'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:125,11'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:127,11'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:129,11'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:135,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:137,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:139,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:141,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:153,18'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:156,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:164,13'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:164,13'
          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:    primitives_init_sign_ssse3_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_sign_ssse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - primitives_get_generic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:176,12'
          Dst:             primitives_get_generic
        - Src:             'libfreerdp/primitives/sse/prim_sign_ssse3.c:181,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    STORE_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mm_set1_epu8
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          93
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mm_set1_epu32
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          33
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    LOAD_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssse3_YCoCgRToRGB_8u_AC4R_no_invert
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YCoCg_ssse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         171
      ICount:          1012
      EdgeCount:       199
      CyclomaticComplexity: 30
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - mm_set1_epu32
        - mm_set1_epu8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:220,44'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:220,44'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:221,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:221,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:234,17'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:236,17'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:256,10'
          Dst:             mm_set1_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:260,9'
          Dst:             mm_set1_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:269,9'
          Dst:             mm_set1_epu8
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:313,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:315,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:325,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:325,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:326,8'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:326,8'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:326,50'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:326,50'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:332,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:332,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:333,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:333,12'
          Dst:             winpr_int_assert
    - functionName:    ssse3_YCoCgRToRGB_8u_AC4R_invert
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YCoCg_ssse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         120
      ICount:          848
      EdgeCount:       139
      CyclomaticComplexity: 21
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - mm_set1_epu32
        - mm_set1_epu8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:46,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:47,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:68,44'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:68,44'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:69,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:69,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:88,9'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:90,9'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:110,10'
          Dst:             mm_set1_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:114,9'
          Dst:             mm_set1_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:123,9'
          Dst:             mm_set1_epu8
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:163,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:165,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:175,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:175,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:176,8'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:176,8'
          Dst:             winpr_int_assert
    - functionName:    ssse3_YCoCgRToRGB_8u_AC4R
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YCoCg_ssse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         95
      ICount:          365
      EdgeCount:       106
      CyclomaticComplexity: 13
      functionsReached:
        - ssse3_YCoCgRToRGB_8u_AC4R_invert
        - ssse3_YCoCgRToRGB_8u_AC4R_no_invert
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:349,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:354,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:354,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:355,8'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:355,8'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:353,11'
          Dst:             ssse3_YCoCgRToRGB_8u_AC4R_invert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:360,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:360,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:361,8'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:361,8'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:359,11'
          Dst:             ssse3_YCoCgRToRGB_8u_AC4R_no_invert
    - 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:    primitives_init_YCoCg_ssse3_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YCoCg_ssse3.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - primitives_get_generic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:375,12'
          Dst:             primitives_get_generic
        - Src:             'libfreerdp/primitives/sse/prim_YCoCg_ssse3.c:377,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    STORE_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    LOAD_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mm_set_epu32
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          36
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sse_image_copy_bgrx32_bgrx32
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_copy_sse4_1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          342
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:116,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:117,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:119,4'
          Dst:             STORE_SI128
    - functionName:    sse_image_copy_bgr24_bgrx32
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_copy_sse4_1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          244
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - mm_set_epu32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:48,23'
          Dst:             mm_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:49,24'
          Dst:             mm_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:66,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:68,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:71,4'
          Dst:             STORE_SI128
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sse_image_copy_no_overlap_dst_alpha
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_copy_sse4_1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      int
      argCount:        18
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          224
      EdgeCount:       76
      CyclomaticComplexity: 38
      functionsReached:
        - primitives_get_generic
        - sse_image_copy_bgr24_bgrx32
        - sse_image_copy_bgrx32_bgrx32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/sse/prim_copy_sse4_1.c:145,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/primitives/sse/prim_copy_sse4_1.c:148,4'
          Branch Sides:    []
        - Branch String:   'libfreerdp/primitives/sse/prim_copy_sse4_1.c:161,4'
          Branch Sides:    []
        - Branch String:   'libfreerdp/primitives/sse/prim_copy_sse4_1.c:174,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:142,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:143,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:152,13'
          Dst:             sse_image_copy_bgr24_bgrx32
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:165,13'
          Dst:             sse_image_copy_bgrx32_bgrx32
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:178,13'
          Dst:             sse_image_copy_bgrx32_bgrx32
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:189,22'
          Dst:             primitives_get_generic
    - functionName:    FreeRDPColorHasAlpha
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - functionName:    sse_image_copy_no_overlap
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_copy_sse4_1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          262
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - FreeRDPAreColorFormatsEqualNoAlpha
        - FreeRDPColorHasAlpha
        - FreeRDPGetBytesPerPixel
        - generic_image_copy_no_overlap_memcpy
        - primitives_get_generic
        - sse_image_copy_no_overlap_dst_alpha
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:217,23'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:220,23'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:228,49'
          Dst:             FreeRDPColorHasAlpha
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:229,10'
          Dst:             sse_image_copy_no_overlap_dst_alpha
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:233,11'
          Dst:             FreeRDPAreColorFormatsEqualNoAlpha
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:234,10'
          Dst:             generic_image_copy_no_overlap_memcpy
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:240,23'
          Dst:             primitives_get_generic
    - 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:    primitives_init_copy_sse41_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_copy_sse4_1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_copy_sse4_1.c:251,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    sse41_ChromaV2ToYUV444
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1583
      functionLinenumberEnd: 1691
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          1213
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - LOAD_SI128
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1616,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1623,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1653,24'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1654,24'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1667,24'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1668,24'
          Dst:             LOAD_SI128
    - functionName:    LOAD_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    48
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sse41_ChromaV1ToYUV444
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1486
      functionLinenumberEnd: 1576
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          655
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - LOAD_SI128
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1553,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1560,23'
          Dst:             LOAD_SI128
    - functionName:    sse41_LumaToYUV444
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1399
      functionLinenumberEnd: 1479
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          713
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1445,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1448,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1449,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1450,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1451,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1454,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1457,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1458,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1459,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1460,5'
          Dst:             STORE_SI128
    - functionName:    STORE_SI128
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BGRX_fillRGB_single
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          128
      EdgeCount:       32
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
        - writePixelBGRX
        - writeYUVPixel
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:447,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:448,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:449,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:450,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:460,3'
          Dst:             writeYUVPixel
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:460,3'
          Dst:             writePixelBGRX
    - functionName:    writePixelBGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    writeYUVPixel
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - YUV2B
        - YUV2G
        - YUV2R
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:301,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_internal.h:302,17'
          Dst:             YUV2R
        - Src:             'libfreerdp/primitives/prim_internal.h:303,17'
          Dst:             YUV2G
        - Src:             'libfreerdp/primitives/prim_internal.h:304,17'
          Dst:             YUV2B
        - Src:             'libfreerdp/primitives/prim_internal.h:305,27'
          Dst:             FreeRDPGetBytesPerPixel
    - functionName:    YUV2R
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      char
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - C
        - CLIP
        - D
        - E
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:251,25'
          Dst:             C
        - Src:             'libfreerdp/primitives/prim_internal.h:251,36'
          Dst:             D
        - Src:             'libfreerdp/primitives/prim_internal.h:251,49'
          Dst:             E
        - Src:             'libfreerdp/primitives/prim_internal.h:253,9'
          Dst:             CLIP
    - functionName:    YUV2G
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      char
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - C
        - CLIP
        - D
        - E
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:259,25'
          Dst:             C
        - Src:             'libfreerdp/primitives/prim_internal.h:259,37'
          Dst:             D
        - Src:             'libfreerdp/primitives/prim_internal.h:259,50'
          Dst:             E
        - Src:             'libfreerdp/primitives/prim_internal.h:261,9'
          Dst:             CLIP
    - functionName:    YUV2B
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      char
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - C
        - CLIP
        - D
        - E
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:267,25'
          Dst:             C
        - Src:             'libfreerdp/primitives/prim_internal.h:267,38'
          Dst:             D
        - Src:             'libfreerdp/primitives/prim_internal.h:267,49'
          Dst:             E
        - Src:             'libfreerdp/primitives/prim_internal.h:269,9'
          Dst:             CLIP
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    C
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    D
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    E
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CLIP
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CONDITIONAL_CLIP
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - CLIP
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:217,13'
          Dst:             CLIP
    - functionName:    sse41_yuv2x_single
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          587
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sse41_yuv2x
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          224
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sse41_yuv2x_single
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:282,25'
          Dst:             sse41_yuv2x_single
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:287,25'
          Dst:             sse41_yuv2x_single
    - functionName:    sse41_yuv2b
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 308
      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:
        - sse41_yuv2x
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:308,9'
          Dst:             sse41_yuv2x
    - functionName:    sse41_yuv2g
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 302
      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:
        - sse41_yuv2x
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:302,9'
          Dst:             sse41_yuv2x
    - functionName:    sse41_yuv2r
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 296
      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:
        - sse41_yuv2x
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:296,9'
          Dst:             sse41_yuv2x
    - functionName:    diffmask
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          98
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    calcavg
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          158
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mm_set_epu8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:362,24'
          Dst:             mm_set_epu8
    - functionName:    mm_set_epu8
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      'N/A'
      argCount:        16
      argTypes:
        - char
        - char
        - char
        - char
        - char
        - char
        - char
        - char
        - char
        - char
        - char
        - char
        - char
        - char
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          120
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    odd0sum
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mm_set_epu8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:350,23'
          Dst:             mm_set_epu8
    - functionName:    odd1sum
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          134
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sse41_BGRX_fillRGB_pixel
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          315
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mm_set_epu8
        - sse41_yuv2b
        - sse41_yuv2g
        - sse41_yuv2r
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:316,20'
          Dst:             sse41_yuv2r
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:319,20'
          Dst:             sse41_yuv2g
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:320,20'
          Dst:             sse41_yuv2b
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:324,23'
          Dst:             mm_set_epu8
    - functionName:    sse41_filter
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          117
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - calcavg
        - diffmask
        - mm_set_epu8
        - odd0sum
        - odd1sum
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:380,24'
          Dst:             odd1sum
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:381,22'
          Dst:             odd0sum
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:384,24'
          Dst:             mm_set_epu8
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:387,22'
          Dst:             calcavg
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:388,24'
          Dst:             diffmask
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:393,24'
          Dst:             mm_set_epu8
    - functionName:    BGRX_fillRGB
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          275
      EdgeCount:       47
      CyclomaticComplexity: 7
      functionsReached:
        - CONDITIONAL_CLIP
        - winpr_int_assert
        - writePixelBGRX
        - writeYUVPixel
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:195,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:196,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:197,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:198,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:217,9'
          Dst:             CONDITIONAL_CLIP
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:218,9'
          Dst:             CONDITIONAL_CLIP
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:221,4'
          Dst:             writeYUVPixel
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:221,4'
          Dst:             writePixelBGRX
    - functionName:    sse41_BGRX_fillRGB
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          106
      EdgeCount:       32
      CyclomaticComplexity: 3
      functionsReached:
        - sse41_BGRX_fillRGB_pixel
        - sse41_filter
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:403,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:404,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:405,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:406,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:408,2'
          Dst:             sse41_filter
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:409,2'
          Dst:             sse41_filter
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:413,3'
          Dst:             sse41_BGRX_fillRGB_pixel
    - functionName:    sse41_YUV444ToRGB_8u_P3AC4R_BGRX_SINGLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 475
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - BGRX_fillRGB_single
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:468,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:472,3'
          Dst:             BGRX_fillRGB_single
    - functionName:    sse41_YUV444ToRGB_8u_P3AC4R_BGRX_DOUBLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 440
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          151
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - BGRX_fillRGB
        - LOAD_SI128
        - sse41_BGRX_fillRGB
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:421,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:427,25'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:427,51'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:428,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:428,45'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:429,19'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:429,45'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:432,3'
          Dst:             sse41_BGRX_fillRGB
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:437,3'
          Dst:             BGRX_fillRGB
    - functionName:    sse41_YUV444ToRGB_8u_P3AC4R_BGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          245
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - sse41_YUV444ToRGB_8u_P3AC4R_BGRX_DOUBLE_ROW
        - sse41_YUV444ToRGB_8u_P3AC4R_BGRX_SINGLE_ROW
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:495,7'
          Dst:             sse41_YUV444ToRGB_8u_P3AC4R_BGRX_DOUBLE_ROW
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:506,7'
          Dst:             sse41_YUV444ToRGB_8u_P3AC4R_BGRX_SINGLE_ROW
    - functionName:    mm_set_epu32
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_avxsse.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          36
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sse41_YUV444Pixel
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          798
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - mm_set_epu32
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:48,27'
          Dst:             mm_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:49,24'
          Dst:             mm_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:50,24'
          Dst:             mm_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:51,24'
          Dst:             mm_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:52,28'
          Dst:             mm_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:53,25'
          Dst:             mm_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:54,25'
          Dst:             mm_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:55,25'
          Dst:             mm_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:56,27'
          Dst:             mm_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:57,24'
          Dst:             mm_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:58,24'
          Dst:             mm_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:60,31'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:61,31'
          Dst:             mm_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:121,2'
          Dst:             STORE_SI128
    - functionName:    sse41_YUV420ToRGB_BGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          322
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - LOAD_SI128
        - sse41_YUV444Pixel
        - writePixelBGRX
        - writeYUVPixel
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:144,22'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:145,25'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:146,25'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:152,10'
          Dst:             sse41_YUV444Pixel
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:153,10'
          Dst:             sse41_YUV444Pixel
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:154,10'
          Dst:             sse41_YUV444Pixel
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:155,10'
          Dst:             sse41_YUV444Pixel
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:163,20'
          Dst:             writeYUVPixel
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:163,20'
          Dst:             writePixelBGRX
    - functionName:    sse41_RGBToAVC444YUVv2_BGRX_DOUBLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1081
      functionLinenumberEnd: 1322
      functionDepth:   0
      returnType:      void
      argCount:        15
      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'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          2410
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - general_RGBToAVC444YUVv2_BGRX_DOUBLE_ROW
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1092,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1093,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1094,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1095,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1096,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1097,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1098,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1099,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1111,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1125,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1318,2'
          Dst:             general_RGBToAVC444YUVv2_BGRX_DOUBLE_ROW
    - functionName:    sse41_RGBToAVC444YUVv2_BGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1329
      functionLinenumberEnd: 1375
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          381
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - general_RGBToAVC444YUVv2_BGRX_DOUBLE_ROW
        - sse41_RGBToAVC444YUVv2_BGRX_DOUBLE_ROW
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1350,3'
          Dst:             sse41_RGBToAVC444YUVv2_BGRX_DOUBLE_ROW
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1368,3'
          Dst:             general_RGBToAVC444YUVv2_BGRX_DOUBLE_ROW
    - functionName:    sse41_RGBToAVC444YUV_BGRX_DOUBLE_ROW
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 790
      functionLinenumberEnd: 996
      functionDepth:   0
      returnType:      void
      argCount:        11
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          1864
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - general_RGBToAVC444YUV_BGRX_DOUBLE_ROW
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:802,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:803,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:804,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:805,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:806,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:807,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:808,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:809,23'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:827,4'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:832,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:900,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:978,5'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:994,2'
          Dst:             general_RGBToAVC444YUV_BGRX_DOUBLE_ROW
    - functionName:    sse41_RGBToAVC444YUV_BGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1003
      functionLinenumberEnd: 1039
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          314
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - general_RGBToAVC444YUV_BGRX_DOUBLE_ROW
        - sse41_RGBToAVC444YUV_BGRX_DOUBLE_ROW
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1022,3'
          Dst:             sse41_RGBToAVC444YUV_BGRX_DOUBLE_ROW
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1034,3'
          Dst:             general_RGBToAVC444YUV_BGRX_DOUBLE_ROW
    - functionName:    RGB2V
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      char
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          106
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:295,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_internal.h:295,9'
          Dst:             winpr_int_assert
    - functionName:    RGB2U
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      char
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          106
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:288,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_internal.h:288,9'
          Dst:             winpr_int_assert
    - functionName:    RGB2Y
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/prim_internal.h'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      char
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          105
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/prim_internal.h:281,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/prim_internal.h:281,9'
          Dst:             winpr_int_assert
    - functionName:    sse41_BGRX_TO_YUV
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 585
      functionLinenumberEnd: 596
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          97
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - RGB2U
        - RGB2V
        - RGB2Y
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:591,15'
          Dst:             RGB2Y
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:593,15'
          Dst:             RGB2U
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:595,15'
          Dst:             RGB2V
    - functionName:    sse41_RGBToYUV420_BGRX_Y
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 601
      functionLinenumberEnd: 640
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          281
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - LOAD_SI128
        - STORE_SI128
        - sse41_BGRX_TO_YUV
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:611,16'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:615,17'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:621,16'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:625,17'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:633,3'
          Dst:             STORE_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:638,3'
          Dst:             sse41_BGRX_TO_YUV
    - functionName:    sse41_RGBToYUV420_BGRX_UV
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 730
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         95
      ICount:          1044
      EdgeCount:       109
      CyclomaticComplexity: 16
      functionsReached:
        - CLIP
        - LOAD_SI128
        - sse41_BGRX_TO_YUV
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:663,16'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:664,16'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:667,16'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:668,8'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:671,16'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:672,8'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:675,16'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:676,8'
          Dst:             LOAD_SI128
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:716,3'
          Dst:             sse41_BGRX_TO_YUV
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:717,3'
          Dst:             sse41_BGRX_TO_YUV
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:718,3'
          Dst:             sse41_BGRX_TO_YUV
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:719,3'
          Dst:             sse41_BGRX_TO_YUV
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:720,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:720,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:721,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:721,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:722,19'
          Dst:             CLIP
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:725,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:725,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:726,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:726,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:727,19'
          Dst:             CLIP
    - functionName:    sse41_RGBToYUV420_BGRX
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 735
      functionLinenumberEnd: 764
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          206
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - sse41_RGBToYUV420_BGRX_UV
        - sse41_RGBToYUV420_BGRX_Y
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:751,3'
          Dst:             sse41_RGBToYUV420_BGRX_UV
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:752,3'
          Dst:             sse41_RGBToYUV420_BGRX_Y
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:753,3'
          Dst:             sse41_RGBToYUV420_BGRX_Y
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:760,3'
          Dst:             sse41_RGBToYUV420_BGRX_Y
    - functionName:    sse41_YUV420CombineToYUV444
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1699
      functionLinenumberEnd: 1723
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          153
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - sse41_ChromaV1ToYUV444
        - sse41_ChromaV2ToYUV444
        - sse41_LumaToYUV444
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1709,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1712,11'
          Dst:             sse41_LumaToYUV444
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1715,11'
          Dst:             sse41_ChromaV1ToYUV444
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1718,11'
          Dst:             sse41_ChromaV2ToYUV444
    - functionName:    sse41_YUV444ToRGB_8u_P3AC4R
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - sse41_YUV444ToRGB_8u_P3AC4R_BGRX
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:519,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:523,11'
          Dst:             sse41_YUV444ToRGB_8u_P3AC4R_BGRX
    - functionName:    sse41_YUV420ToRGB
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - sse41_YUV420ToRGB_BGRX
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:180,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:184,11'
          Dst:             sse41_YUV420ToRGB_BGRX
    - functionName:    sse41_RGBToAVC444YUVv2
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1382
      functionLinenumberEnd: 1394
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - sse41_RGBToAVC444YUVv2_BGRX
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1383,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1387,11'
          Dst:             sse41_RGBToAVC444YUVv2_BGRX
    - functionName:    sse41_RGBToAVC444YUV
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1046
      functionLinenumberEnd: 1058
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - sse41_RGBToAVC444YUV_BGRX
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1047,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1051,11'
          Dst:             sse41_RGBToAVC444YUV_BGRX
    - functionName:    sse41_RGBToYUV420
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 769
      functionLinenumberEnd: 779
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - sse41_RGBToYUV420_BGRX
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:770,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:774,11'
          Dst:             sse41_RGBToYUV420_BGRX
    - 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:    primitives_init_YUV_sse41_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_YUV_sse4.1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1727
      functionLinenumberEnd: 1742
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - primitives_get_generic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1729,12'
          Dst:             primitives_get_generic
        - Src:             'libfreerdp/primitives/sse/prim_YUV_sse4.1.c:1731,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    mm256_set_epu32
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_copy_avx2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          64
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avx2_image_copy_bgrx32_bgrx32
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_copy_avx2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          459
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avx2_image_copy_bgr24_bgrx32
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_copy_avx2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          341
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - mm256_set_epu32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:54,23'
          Dst:             mm256_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:56,24'
          Dst:             mm256_set_epu32
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:58,28'
          Dst:             mm256_set_epu32
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avx2_image_copy_no_overlap_dst_alpha
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_copy_avx2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      int
      argCount:        18
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          224
      EdgeCount:       76
      CyclomaticComplexity: 38
      functionsReached:
        - avx2_image_copy_bgr24_bgrx32
        - avx2_image_copy_bgrx32_bgrx32
        - primitives_get_generic
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/primitives/sse/prim_copy_avx2.c:166,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/primitives/sse/prim_copy_avx2.c:169,4'
          Branch Sides:    []
        - Branch String:   'libfreerdp/primitives/sse/prim_copy_avx2.c:182,4'
          Branch Sides:    []
        - Branch String:   'libfreerdp/primitives/sse/prim_copy_avx2.c:195,4'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:163,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:164,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:173,13'
          Dst:             avx2_image_copy_bgr24_bgrx32
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:186,13'
          Dst:             avx2_image_copy_bgrx32_bgrx32
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:199,13'
          Dst:             avx2_image_copy_bgrx32_bgrx32
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:210,22'
          Dst:             primitives_get_generic
    - functionName:    FreeRDPColorHasAlpha
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - functionName:    avx2_image_copy_no_overlap
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_copy_avx2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      int
      argCount:        14
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          262
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - FreeRDPAreColorFormatsEqualNoAlpha
        - FreeRDPColorHasAlpha
        - FreeRDPGetBytesPerPixel
        - avx2_image_copy_no_overlap_dst_alpha
        - generic_image_copy_no_overlap_memcpy
        - primitives_get_generic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:238,23'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:241,23'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:249,49'
          Dst:             FreeRDPColorHasAlpha
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:250,10'
          Dst:             avx2_image_copy_no_overlap_dst_alpha
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:254,11'
          Dst:             FreeRDPAreColorFormatsEqualNoAlpha
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:255,10'
          Dst:             generic_image_copy_no_overlap_memcpy
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:261,23'
          Dst:             primitives_get_generic
    - 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:    primitives_init_copy_avx2_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/primitives/sse/prim_copy_avx2.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/primitives/sse/prim_copy_avx2.c:272,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    intersect_rect
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1087
      functionLinenumberEnd: 1118
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          271
      EdgeCount:       54
      CyclomaticComplexity: 12
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:1088,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1089,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1090,2'
          Dst:             winpr_int_assert
    - functionName:    gdi_rop3_code_checked_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - gdi_rop3_code
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:333,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:334,9'
          Dst:             gdi_rop3_code
    - functionName:    gdi_rop3_code
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_frame_marker
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1050
      functionLinenumberEnd: 1051
      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:    gdi_surface_frame_marker
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1056
      functionLinenumberEnd: 1084
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         50
      ICount:          189
      EdgeCount:       54
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/gdi/gdi.c:1065,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:1057,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1058,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1059,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1060,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1062,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/gdi/gdi.c:1062,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/gdi/gdi.c:1071,8'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/gdi/gdi.c:1073,10'
          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:    17
      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:    gdi_surface_bits
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1121
      functionLinenumberEnd: 1245
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         203
      ICount:          998
      EdgeCount:       240
      CyclomaticComplexity: 39
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - freerdp_codec_id_to_str
        - freerdp_image_copy_no_overlap
        - gdi_InvalidateRegion
        - gdi_get_pixel_format
        - intersect_rect
        - nsc_process_message
        - region16_init
        - region16_rects
        - region16_uninit
        - region16_union_rect
        - rfx_process_message
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/gdi/gdi.c:1148,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:1135,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/gdi/gdi.c:1135,2'
          Dst:             freerdp_codec_id_to_str
        - Src:             'libfreerdp/gdi/gdi.c:1135,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/gdi/gdi.c:1143,2'
          Dst:             region16_init
        - Src:             'libfreerdp/gdi/gdi.c:1145,7'
          Dst:             intersect_rect
        - Src:             'libfreerdp/gdi/gdi.c:1155,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1155,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1152,9'
          Dst:             rfx_process_message
        - Src:             'libfreerdp/gdi/gdi.c:1157,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/gdi.c:1170,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1170,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1171,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1171,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1166,9'
          Dst:             nsc_process_message
        - Src:             'libfreerdp/gdi/gdi.c:1173,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/gdi.c:1177,9'
          Dst:             region16_union_rect
        - Src:             'libfreerdp/gdi/gdi.c:1182,13'
          Dst:             gdi_get_pixel_format
        - Src:             'libfreerdp/gdi/gdi.c:1183,53'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/gdi.c:1186,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/gdi.c:1191,9'
          Dst:             freerdp_image_copy_no_overlap
        - Src:             'libfreerdp/gdi/gdi.c:1196,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/gdi.c:1200,9'
          Dst:             region16_union_rect
        - Src:             'libfreerdp/gdi/gdi.c:1205,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/gdi.c:1211,31'
          Dst:             region16_rects
        - Src:             'libfreerdp/gdi/gdi.c:1219,9'
          Dst:             gdi_InvalidateRegion
        - Src:             'libfreerdp/gdi/gdi.c:1231,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1231,49'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1232,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1232,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1233,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1233,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1234,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1234,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1231,9'
          Dst:             gdi_InvalidateRegion
        - Src:             'libfreerdp/gdi/gdi.c:1236,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/gdi.c:1243,2'
          Dst:             region16_uninit
    - functionName:    gdi_get_pixel_format
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       19
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    5
      BranchProfiles:
        - Branch String:   'libfreerdp/gdi/gdi.c:405,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:428,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_ellipse_cb
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1043
      functionLinenumberEnd: 1045
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:1044,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    gdi_ellipse_sc
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1036
      functionLinenumberEnd: 1038
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:1037,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    gdi_polygon_cb
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1031
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:1030,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    gdi_polygon_sc
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1022
      functionLinenumberEnd: 1024
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:1023,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    gdi_mem3blt
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 893
      functionLinenumberEnd: 1018
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         92
      ICount:          618
      EdgeCount:       110
      CyclomaticComplexity: 20
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - WLog_Print_dbg_tag
        - freerdp_image_copy_from_monochrome
        - freerdp_image_copy_no_overlap
        - freerdp_settings_get_uint32
        - gdi_BitBlt
        - gdi_CreateBitmap
        - gdi_CreatePatternBrush
        - gdi_CreateSolidBrush
        - gdi_DeleteObject
        - gdi_SetTextColor
        - gdi_decode_color
        - gdi_get_pixel_format
        - gdi_rop3_code_checked_int
        - winpr_aligned_free
        - winpr_aligned_malloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/gdi/gdi.c:917,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:894,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:895,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:909,7'
          Dst:             gdi_decode_color
        - Src:             'libfreerdp/gdi/gdi.c:912,7'
          Dst:             gdi_decode_color
        - Src:             'libfreerdp/gdi/gdi.c:915,18'
          Dst:             gdi_SetTextColor
        - Src:             'libfreerdp/gdi/gdi.c:921,31'
          Dst:             gdi_CreateSolidBrush
        - Src:             'libfreerdp/gdi/gdi.c:931,37'
          Dst:             gdi_rop3_code_checked_int
        - Src:             'libfreerdp/gdi/gdi.c:929,10'
          Dst:             gdi_BitBlt
        - Src:             'libfreerdp/gdi/gdi.c:932,4'
          Dst:             gdi_DeleteObject
        - Src:             'libfreerdp/gdi/gdi.c:941,22'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/gdi.c:940,24'
          Dst:             winpr_aligned_malloc
        - Src:             'libfreerdp/gdi/gdi.c:954,9'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/gdi/gdi.c:958,19'
          Dst:             gdi_get_pixel_format
        - Src:             'libfreerdp/gdi/gdi.c:960,10'
          Dst:             freerdp_image_copy_no_overlap
        - Src:             'libfreerdp/gdi/gdi.c:965,6'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/gdi/gdi.c:971,10'
          Dst:             freerdp_image_copy_from_monochrome
        - Src:             'libfreerdp/gdi/gdi.c:976,6'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/gdi/gdi.c:981,11'
          Dst:             gdi_CreateBitmap
        - Src:             'libfreerdp/gdi/gdi.c:986,5'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/gdi/gdi.c:991,31'
          Dst:             gdi_CreatePatternBrush
        - Src:             'libfreerdp/gdi/gdi.c:995,5'
          Dst:             gdi_DeleteObject
        - Src:             'libfreerdp/gdi/gdi.c:999,38'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:999,38'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1000,38'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1000,38'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1003,37'
          Dst:             gdi_rop3_code_checked_int
        - Src:             'libfreerdp/gdi/gdi.c:1001,10'
          Dst:             gdi_BitBlt
        - Src:             'libfreerdp/gdi/gdi.c:1004,4'
          Dst:             gdi_DeleteObject
        - Src:             'libfreerdp/gdi/gdi.c:1005,4'
          Dst:             gdi_DeleteObject
        - Src:             'libfreerdp/gdi/gdi.c:1011,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/gdi.c:1016,2'
          Dst:             gdi_SetTextColor
    - functionName:    gdi_decode_color
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          129
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - FreeRDPConvertColor
        - freerdp_settings_get_uint32
      functionUses:    10
      BranchProfiles:
        - Branch String:   'libfreerdp/gdi/gdi.c:347,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:345,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/gdi/gdi.c:373,11'
          Dst:             FreeRDPConvertColor
    - functionName:    FreeRDPConvertColor
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetColor
        - FreeRDPSplitColor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:277,3'
          Dst:             FreeRDPSplitColor
        - Src:             'include/freerdp/codec/color.h:278,10'
          Dst:             FreeRDPGetColor
    - functionName:    gdi_memblt
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 879
      functionLinenumberEnd: 890
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          108
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - gdi_BitBlt
        - gdi_rop3_code_checked_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:889,20'
          Dst:             gdi_rop3_code_checked_int
        - Src:             'libfreerdp/gdi/gdi.c:887,9'
          Dst:             gdi_BitBlt
    - functionName:    gdi_polyline
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 834
      functionLinenumberEnd: 876
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         71
      ICount:          331
      EdgeCount:       83
      CyclomaticComplexity: 14
      functionsReached:
        - gdi_CreatePen
        - gdi_DeleteObject
        - gdi_LineTo
        - gdi_MoveToEx
        - gdi_SelectObject
        - gdi_SetROP2
        - gdi_decode_color
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:836,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:837,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:844,7'
          Dst:             gdi_decode_color
        - Src:             'libfreerdp/gdi/gdi.c:847,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:848,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:850,18'
          Dst:             gdi_CreatePen
        - Src:             'libfreerdp/gdi/gdi.c:854,2'
          Dst:             gdi_SelectObject
        - Src:             'libfreerdp/gdi/gdi.c:855,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:855,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:855,2'
          Dst:             gdi_SetROP2
        - Src:             'libfreerdp/gdi/gdi.c:858,7'
          Dst:             gdi_MoveToEx
        - Src:             'libfreerdp/gdi/gdi.c:866,8'
          Dst:             gdi_LineTo
        - Src:             'libfreerdp/gdi/gdi.c:868,8'
          Dst:             gdi_MoveToEx
        - Src:             'libfreerdp/gdi/gdi.c:874,2'
          Dst:             gdi_DeleteObject
    - functionName:    gdi_line_to
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 800
      functionLinenumberEnd: 831
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         59
      ICount:          263
      EdgeCount:       69
      CyclomaticComplexity: 12
      functionsReached:
        - gdi_CreatePen
        - gdi_DeleteObject
        - gdi_LineTo
        - gdi_MoveToEx
        - gdi_SelectObject
        - gdi_SetROP2
        - gdi_decode_color
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:803,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:804,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:810,7'
          Dst:             gdi_decode_color
        - Src:             'libfreerdp/gdi/gdi.c:813,18'
          Dst:             gdi_CreatePen
        - Src:             'libfreerdp/gdi/gdi.c:818,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:820,2'
          Dst:             gdi_SelectObject
        - Src:             'libfreerdp/gdi/gdi.c:821,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:821,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:821,2'
          Dst:             gdi_SetROP2
        - Src:             'libfreerdp/gdi/gdi.c:822,7'
          Dst:             gdi_MoveToEx
        - Src:             'libfreerdp/gdi/gdi.c:824,7'
          Dst:             gdi_LineTo
        - Src:             'libfreerdp/gdi/gdi.c:829,2'
          Dst:             gdi_DeleteObject
    - functionName:    gdi_multi_opaque_rect
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 755
      functionLinenumberEnd: 797
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          179
      EdgeCount:       41
      CyclomaticComplexity: 9
      functionsReached:
        - gdi_CRgnToRect
        - gdi_CreateSolidBrush
        - gdi_DeleteObject
        - gdi_FillRect
        - gdi_decode_color
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:756,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:757,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:767,7'
          Dst:             gdi_decode_color
        - Src:             'libfreerdp/gdi/gdi.c:770,22'
          Dst:             gdi_CreateSolidBrush
        - Src:             'libfreerdp/gdi/gdi.c:786,8'
          Dst:             gdi_CRgnToRect
        - Src:             'libfreerdp/gdi/gdi.c:789,9'
          Dst:             gdi_FillRect
        - Src:             'libfreerdp/gdi/gdi.c:795,2'
          Dst:             gdi_DeleteObject
    - functionName:    gdi_opaque_rect
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 720
      functionLinenumberEnd: 751
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          145
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - gdi_CRgnToRect
        - gdi_CreateSolidBrush
        - gdi_DeleteObject
        - gdi_FillRect
        - gdi_decode_color
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:721,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:722,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:739,7'
          Dst:             gdi_CRgnToRect
        - Src:             'libfreerdp/gdi/gdi.c:742,7'
          Dst:             gdi_decode_color
        - Src:             'libfreerdp/gdi/gdi.c:745,17'
          Dst:             gdi_CreateSolidBrush
        - Src:             'libfreerdp/gdi/gdi.c:748,8'
          Dst:             gdi_FillRect
        - Src:             'libfreerdp/gdi/gdi.c:749,2'
          Dst:             gdi_DeleteObject
    - functionName:    gdi_scrblt
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 706
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          100
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - gdi_BitBlt
        - gdi_rop3_code_checked_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:716,20'
          Dst:             gdi_rop3_code_checked_int
        - Src:             'libfreerdp/gdi/gdi.c:714,9'
          Dst:             gdi_BitBlt
    - functionName:    gdi_patblt
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 703
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         98
      ICount:          567
      EdgeCount:       118
      CyclomaticComplexity: 22
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_image_copy_from_monochrome
        - freerdp_image_copy_no_overlap
        - freerdp_settings_get_uint32
        - gdi_BitBlt
        - gdi_CreateBitmapEx
        - gdi_CreateHatchBrush
        - gdi_CreatePatternBrush
        - gdi_CreateSolidBrush
        - gdi_DeleteObject
        - gdi_SetTextColor
        - gdi_decode_color
        - gdi_get_pixel_format
        - gdi_rop3_code_checked_int
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/gdi/gdi.c:618,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:589,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:590,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:600,20'
          Dst:             gdi_rop3_code_checked_int
        - Src:             'libfreerdp/gdi/gdi.c:609,7'
          Dst:             gdi_decode_color
        - Src:             'libfreerdp/gdi/gdi.c:612,7'
          Dst:             gdi_decode_color
        - Src:             'libfreerdp/gdi/gdi.c:615,18'
          Dst:             gdi_SetTextColor
        - Src:             'libfreerdp/gdi/gdi.c:621,13'
          Dst:             gdi_CreateSolidBrush
        - Src:             'libfreerdp/gdi/gdi.c:628,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/gdi.c:634,9'
          Dst:             freerdp_image_copy_from_monochrome
        - Src:             'libfreerdp/gdi/gdi.c:638,11'
          Dst:             gdi_CreateBitmapEx
        - Src:             'libfreerdp/gdi/gdi.c:643,13'
          Dst:             gdi_CreateHatchBrush
        - Src:             'libfreerdp/gdi/gdi.c:656,10'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/gdi/gdi.c:659,19'
          Dst:             gdi_get_pixel_format
        - Src:             'libfreerdp/gdi/gdi.c:661,10'
          Dst:             freerdp_image_copy_no_overlap
        - Src:             'libfreerdp/gdi/gdi.c:668,10'
          Dst:             freerdp_image_copy_from_monochrome
        - Src:             'libfreerdp/gdi/gdi.c:674,11'
          Dst:             gdi_CreateBitmapEx
        - Src:             'libfreerdp/gdi/gdi.c:679,13'
          Dst:             gdi_CreatePatternBrush
        - Src:             'libfreerdp/gdi/gdi.c:684,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/gdi.c:690,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:690,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:691,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:691,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:693,9'
          Dst:             gdi_BitBlt
        - Src:             'libfreerdp/gdi/gdi.c:698,2'
          Dst:             gdi_DeleteObject
        - Src:             'libfreerdp/gdi/gdi.c:699,2'
          Dst:             gdi_DeleteObject
        - Src:             'libfreerdp/gdi/gdi.c:701,2'
          Dst:             gdi_SetTextColor
    - functionName:    gdi_dstblt
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 585
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          85
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - gdi_BitBlt
        - gdi_rop3_code_checked_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:583,52'
          Dst:             gdi_rop3_code_checked_int
        - Src:             'libfreerdp/gdi/gdi.c:582,9'
          Dst:             gdi_BitBlt
    - functionName:    gdi_set_bounds
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          95
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - gdi_SetClipRgn
        - gdi_SetNullClipRgn
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:568,10'
          Dst:             gdi_SetClipRgn
        - Src:             'libfreerdp/gdi/gdi.c:571,9'
          Dst:             gdi_SetNullClipRgn
    - functionName:    gdi_palette_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          103
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - FreeRDPGetColor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:552,7'
          Dst:             FreeRDPGetColor
    - functionName:    gdi_send_suppress_output
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1523
      functionLinenumberEnd: 1549
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         71
      ICount:          287
      EdgeCount:       80
      CyclomaticComplexity: 11
      functionsReached:
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:1534,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1537,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1539,19'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/gdi/gdi.c:1540,19'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/gdi/gdi.c:1544,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1544,36'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1545,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1545,37'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1547,2'
          Dst:             winpr_int_assert
    - functionName:    gdi_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1500
      functionLinenumberEnd: 1520
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          78
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - cache_free
        - gdi_DeleteDC
        - gdi_bitmap_free_ex
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:1511,3'
          Dst:             gdi_bitmap_free_ex
        - Src:             'libfreerdp/gdi/gdi.c:1512,3'
          Dst:             gdi_DeleteDC
        - Src:             'libfreerdp/gdi/gdi.c:1517,2'
          Dst:             cache_free
    - functionName:    gdi_bitmap_free_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - gdi_DeleteDC
        - gdi_DeleteObject
        - gdi_SelectObject
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:476,3'
          Dst:             gdi_SelectObject
        - Src:             'libfreerdp/gdi/gdi.c:477,3'
          Dst:             gdi_DeleteObject
        - Src:             'libfreerdp/gdi/gdi.c:478,3'
          Dst:             gdi_DeleteDC
    - functionName:    gdi_register_update_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1253
      functionLinenumberEnd: 1292
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          171
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_settings_get_bool
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:1254,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1255,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1258,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1261,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1263,6'
          Dst:             freerdp_settings_get_bool
    - functionName:    gdi_init_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1435
      functionLinenumberEnd: 1497
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         91
      ICount:          401
      EdgeCount:       105
      CyclomaticComplexity: 16
      functionsReached:
        - FreeRDPGetColorFormatName
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - bitmap_cache_register_callbacks
        - brush_cache_register_callbacks
        - cache_new
        - calloc
        - freerdp_settings_get_uint32
        - gdi_GetDC
        - gdi_free
        - gdi_get_pixel_format
        - gdi_init_primary
        - gdi_register_graphics
        - gdi_register_update_callbacks
        - glyph_cache_register_callbacks
        - offscreen_cache_register_callbacks
        - palette_cache_register_callbacks
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:1440,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1443,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1444,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1446,28'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/gdi/gdi.c:1447,14'
          Dst:             gdi_get_pixel_format
        - Src:             'libfreerdp/gdi/gdi.c:1448,17'
          Dst:             calloc
        - Src:             'libfreerdp/gdi/gdi.c:1454,13'
          Dst:             WLog_Get
        - Src:             'libfreerdp/gdi/gdi.c:1460,15'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/gdi/gdi.c:1460,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1460,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1462,16'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/gdi/gdi.c:1462,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1462,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1466,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/gdi/gdi.c:1466,2'
          Dst:             FreeRDPGetColorFormatName
        - Src:             'libfreerdp/gdi/gdi.c:1466,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/gdi/gdi.c:1468,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/gdi/gdi.c:1468,2'
          Dst:             FreeRDPGetColorFormatName
        - Src:             'libfreerdp/gdi/gdi.c:1468,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/gdi/gdi.c:1471,19'
          Dst:             gdi_GetDC
        - Src:             'libfreerdp/gdi/gdi.c:1476,7'
          Dst:             gdi_init_primary
        - Src:             'libfreerdp/gdi/gdi.c:1479,25'
          Dst:             cache_new
        - Src:             'libfreerdp/gdi/gdi.c:1482,2'
          Dst:             gdi_register_update_callbacks
        - Src:             'libfreerdp/gdi/gdi.c:1483,2'
          Dst:             brush_cache_register_callbacks
        - Src:             'libfreerdp/gdi/gdi.c:1484,2'
          Dst:             glyph_cache_register_callbacks
        - Src:             'libfreerdp/gdi/gdi.c:1485,2'
          Dst:             bitmap_cache_register_callbacks
        - Src:             'libfreerdp/gdi/gdi.c:1486,2'
          Dst:             offscreen_cache_register_callbacks
        - Src:             'libfreerdp/gdi/gdi.c:1487,2'
          Dst:             palette_cache_register_callbacks
        - Src:             'libfreerdp/gdi/gdi.c:1489,7'
          Dst:             gdi_register_graphics
        - Src:             'libfreerdp/gdi/gdi.c:1494,2'
          Dst:             gdi_free
        - Src:             'libfreerdp/gdi/gdi.c:1495,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    gdi_init_primary
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1296
      functionLinenumberEnd: 1371
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         158
      ICount:          721
      EdgeCount:       184
      CyclomaticComplexity: 28
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - calloc
        - gdi_CreateBitmapEx
        - gdi_CreateCompatibleBitmap
        - gdi_CreateCompatibleDC
        - gdi_CreateRectRgn
        - gdi_DeleteDC
        - gdi_DeleteObject
        - gdi_SelectObject
        - rdp_update_lock
        - rdp_update_unlock
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:1297,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1298,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1299,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1301,3'
          Dst:             rdp_update_lock
        - Src:             'libfreerdp/gdi/gdi.c:1303,29'
          Dst:             calloc
        - Src:             'libfreerdp/gdi/gdi.c:1311,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1311,17'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1312,17'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/gdi.c:1317,28'
          Dst:             gdi_CreateCompatibleDC
        - Src:             'libfreerdp/gdi/gdi.c:1323,44'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1323,44'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1324,34'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1324,34'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1323,7'
          Dst:             gdi_CreateCompatibleBitmap
        - Src:             'libfreerdp/gdi/gdi.c:1328,45'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1328,45'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1329,45'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1329,45'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1328,26'
          Dst:             gdi_CreateBitmapEx
        - Src:             'libfreerdp/gdi/gdi.c:1337,2'
          Dst:             gdi_SelectObject
        - Src:             'libfreerdp/gdi/gdi.c:1341,44'
          Dst:             calloc
        - Src:             'libfreerdp/gdi/gdi.c:1344,43'
          Dst:             gdi_CreateRectRgn
        - Src:             'libfreerdp/gdi/gdi.c:1351,22'
          Dst:             calloc
        - Src:             'libfreerdp/gdi/gdi.c:1359,2'
          Dst:             rdp_update_unlock
        - Src:             'libfreerdp/gdi/gdi.c:1362,2'
          Dst:             gdi_DeleteObject
        - Src:             'libfreerdp/gdi/gdi.c:1364,2'
          Dst:             gdi_DeleteDC
        - Src:             'libfreerdp/gdi/gdi.c:1369,2'
          Dst:             rdp_update_unlock
    - functionName:    gdi_init
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1418
      functionLinenumberEnd: 1419
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gdi_init_ex
        - winpr_aligned_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:1419,9'
          Dst:             gdi_init_ex
        - Src:             'libfreerdp/gdi/gdi.c:1419,9'
          Dst:             winpr_aligned_free
    - functionName:    gdi_resize_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1380
      functionLinenumberEnd: 1408
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          203
      EdgeCount:       51
      CyclomaticComplexity: 12
      functionsReached:
        - gdi_bitmap_free_ex
        - gdi_init_primary
        - rdp_update_lock
        - update_end_paint
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:1391,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1392,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:1395,7'
          Dst:             update_end_paint
        - Src:             'libfreerdp/gdi/gdi.c:1397,2'
          Dst:             rdp_update_lock
        - Src:             'libfreerdp/gdi/gdi.c:1404,2'
          Dst:             gdi_bitmap_free_ex
        - Src:             'libfreerdp/gdi/gdi.c:1407,9'
          Dst:             gdi_init_primary
    - functionName:    gdi_resize
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1374
      functionLinenumberEnd: 1375
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gdi_resize_ex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:1375,9'
          Dst:             gdi_resize_ex
    - functionName:    gdi_bitmap_update
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         164
      ICount:          682
      EdgeCount:       196
      CyclomaticComplexity: 34
      functionsReached:
        - Bitmap_Alloc
        - Bitmap_Free
        - Bitmap_SetDimensions
        - Bitmap_SetRectangle
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:487,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/gdi.c:501,20'
          Dst:             Bitmap_Alloc
        - Src:             'libfreerdp/gdi/gdi.c:506,34'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:506,34'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:507,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:507,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:506,8'
          Dst:             Bitmap_SetDimensions
        - Src:             'libfreerdp/gdi/gdi.c:510,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:510,33'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:511,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:511,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:512,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:512,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:513,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:513,28'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:510,8'
          Dst:             Bitmap_SetRectangle
        - Src:             'libfreerdp/gdi/gdi.c:529,3'
          Dst:             Bitmap_Free
    - functionName:    gdi_bitmap_new_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         128
      ICount:          466
      EdgeCount:       148
      CyclomaticComplexity: 22
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - calloc
        - gdi_CreateCompatibleBitmap
        - gdi_CreateCompatibleDC
        - gdi_DeleteDC
        - gdi_SelectObject
        - gdi_create_bitmap
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/gdi.c:438,34'
          Dst:             calloc
        - Src:             'libfreerdp/gdi/gdi.c:443,22'
          Dst:             gdi_CreateCompatibleDC
        - Src:             'libfreerdp/gdi/gdi.c:446,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/gdi/gdi.c:446,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/gdi/gdi.c:451,44'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:451,44'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:452,34'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:452,34'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:451,7'
          Dst:             gdi_CreateCompatibleBitmap
        - Src:             'libfreerdp/gdi/gdi.c:454,43'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:454,43'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:455,38'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:455,38'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:456,38'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:456,38'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/gdi.c:454,20'
          Dst:             gdi_create_bitmap
        - Src:             'libfreerdp/gdi/gdi.c:461,2'
          Dst:             gdi_SelectObject
        - Src:             'libfreerdp/gdi/gdi.c:465,2'
          Dst:             gdi_DeleteDC
    - functionName:    gdi_rop3_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 389
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_rop3_code_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/gdi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_Bitmap_Rfx
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          124
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - WLog_Print_dbg_tag
        - region16_init
        - region16_uninit
        - rfx_process_message
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/graphics.c:140,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/graphics.c:141,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/graphics.c:142,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/graphics.c:145,2'
          Dst:             region16_init
        - Src:             'libfreerdp/gdi/graphics.c:147,40'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/graphics.c:150,6'
          Dst:             rfx_process_message
        - Src:             'libfreerdp/gdi/graphics.c:152,2'
          Dst:             region16_uninit
        - Src:             'libfreerdp/gdi/graphics.c:156,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - 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:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_Glyph_EndDraw
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          84
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - gdi_SetNullClipRgn
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/graphics.c:471,9'
          Dst:             gdi_SetNullClipRgn
    - functionName:    gdi_Glyph_BeginDraw
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 454
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          253
      EdgeCount:       51
      CyclomaticComplexity: 16
      functionsReached:
        - gdi_CreateSolidBrush
        - gdi_DeleteObject
        - gdi_FillRect
        - gdi_SetBkColor
        - gdi_SetClipRgn
        - gdi_SetNullClipRgn
        - gdi_SetTextColor
        - gdi_decode_color
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/graphics.c:413,8'
          Dst:             gdi_decode_color
        - Src:             'libfreerdp/gdi/graphics.c:416,8'
          Dst:             gdi_decode_color
        - Src:             'libfreerdp/gdi/graphics.c:419,8'
          Dst:             gdi_SetClipRgn
        - Src:             'libfreerdp/gdi/graphics.c:422,3'
          Dst:             gdi_SetTextColor
        - Src:             'libfreerdp/gdi/graphics.c:423,3'
          Dst:             gdi_SetBkColor
        - Src:             'libfreerdp/gdi/graphics.c:427,23'
          Dst:             gdi_CreateSolidBrush
        - Src:             'libfreerdp/gdi/graphics.c:443,11'
          Dst:             gdi_FillRect
        - Src:             'libfreerdp/gdi/graphics.c:445,4'
          Dst:             gdi_DeleteObject
        - Src:             'libfreerdp/gdi/graphics.c:450,10'
          Dst:             gdi_SetNullClipRgn
    - functionName:    gdi_Glyph_Draw
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          258
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - gdi_BitBlt
        - gdi_CreateSolidBrush
        - gdi_DeleteObject
        - gdi_FillRect
        - gdi_SelectObject
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/graphics.c:376,12'
          Dst:             gdi_CreateSolidBrush
        - Src:             'libfreerdp/gdi/graphics.c:381,21'
          Dst:             gdi_FillRect
        - Src:             'libfreerdp/gdi/graphics.c:382,4'
          Dst:             gdi_DeleteObject
        - Src:             'libfreerdp/gdi/graphics.c:388,10'
          Dst:             gdi_CreateSolidBrush
        - Src:             'libfreerdp/gdi/graphics.c:393,2'
          Dst:             gdi_SelectObject
        - Src:             'libfreerdp/gdi/graphics.c:394,7'
          Dst:             gdi_BitBlt
        - Src:             'libfreerdp/gdi/graphics.c:396,2'
          Dst:             gdi_DeleteObject
    - functionName:    gdi_Glyph_Free
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - gdi_DeleteDC
        - gdi_DeleteObject
        - gdi_SelectObject
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/graphics.c:336,3'
          Dst:             gdi_SelectObject
        - Src:             'libfreerdp/gdi/graphics.c:337,3'
          Dst:             gdi_DeleteObject
        - Src:             'libfreerdp/gdi/graphics.c:338,3'
          Dst:             gdi_DeleteDC
    - functionName:    gdi_Glyph_New
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          125
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - freerdp_glyph_convert_ex
        - gdi_CreateBitmap
        - gdi_DeleteDC
        - gdi_GetDC
        - gdi_SelectObject
        - winpr_aligned_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/graphics.c:301,19'
          Dst:             gdi_GetDC
        - Src:             'libfreerdp/gdi/graphics.c:307,15'
          Dst:             freerdp_glyph_convert_ex
        - Src:             'libfreerdp/gdi/graphics.c:311,3'
          Dst:             gdi_DeleteDC
        - Src:             'libfreerdp/gdi/graphics.c:315,22'
          Dst:             gdi_CreateBitmap
        - Src:             'libfreerdp/gdi/graphics.c:319,3'
          Dst:             gdi_DeleteDC
        - Src:             'libfreerdp/gdi/graphics.c:320,3'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/gdi/graphics.c:324,2'
          Dst:             gdi_SelectObject
    - functionName:    gdi_Bitmap_SetSurface
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_Bitmap_Decompress
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         71
      ICount:          429
      EdgeCount:       86
      CyclomaticComplexity: 17
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - WLog_Print_dbg_tag
        - freerdp_bitmap_decompress_planar
        - freerdp_image_copy_no_overlap
        - freerdp_planar_switch_bgr
        - freerdp_settings_get_bool
        - gdi_Bitmap_Rfx
        - gdi_get_pixel_format
        - interleaved_decompress
        - nsc_process_message
        - winpr_aligned_malloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/gdi/graphics.c:194,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/gdi/graphics.c:166,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/graphics.c:167,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/graphics.c:171,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/graphics.c:176,7'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/graphics.c:178,46'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/graphics.c:180,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/graphics.c:184,35'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/graphics.c:186,24'
          Dst:             winpr_aligned_malloc
        - Src:             'libfreerdp/gdi/graphics.c:193,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/graphics.c:198,10'
          Dst:             gdi_Bitmap_Rfx
        - Src:             'libfreerdp/gdi/graphics.c:203,24'
          Dst:             nsc_process_message
        - Src:             'libfreerdp/gdi/graphics.c:209,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/graphics.c:217,11'
          Dst:             interleaved_decompress
        - Src:             'libfreerdp/gdi/graphics.c:222,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/graphics.c:228,28'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/gdi/graphics.c:230,6'
          Dst:             freerdp_planar_switch_bgr
        - Src:             'libfreerdp/gdi/graphics.c:231,11'
          Dst:             freerdp_bitmap_decompress_planar
        - Src:             'libfreerdp/gdi/graphics.c:235,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/graphics.c:244,28'
          Dst:             gdi_get_pixel_format
        - Src:             'libfreerdp/gdi/graphics.c:245,23'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/graphics.c:246,23'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/graphics.c:256,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/graphics.c:262,8'
          Dst:             freerdp_image_copy_no_overlap
        - Src:             'libfreerdp/gdi/graphics.c:266,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    gdi_Bitmap_Paint
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         87
      ICount:          328
      EdgeCount:       99
      CyclomaticComplexity: 14
      functionsReached:
        - gdi_BitBlt
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/graphics.c:130,48'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/graphics.c:130,48'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/graphics.c:131,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/graphics.c:131,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/graphics.c:132,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/graphics.c:132,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/graphics.c:132,58'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/graphics.c:132,58'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/graphics.c:130,9'
          Dst:             gdi_BitBlt
    - functionName:    gdi_Bitmap_Free
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - gdi_DeleteDC
        - gdi_DeleteObject
        - gdi_SelectObject
        - winpr_aligned_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/graphics.c:115,4'
          Dst:             gdi_SelectObject
        - Src:             'libfreerdp/gdi/graphics.c:117,3'
          Dst:             gdi_DeleteObject
        - Src:             'libfreerdp/gdi/graphics.c:118,3'
          Dst:             gdi_DeleteDC
        - Src:             'libfreerdp/gdi/graphics.c:119,3'
          Dst:             winpr_aligned_free
    - functionName:    gdi_Bitmap_New
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          131
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - gdi_CreateCompatibleBitmap
        - gdi_CreateCompatibleDC
        - gdi_DeleteDC
        - gdi_SelectObject
        - gdi_create_bitmap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/graphics.c:81,20'
          Dst:             gdi_CreateCompatibleDC
        - Src:             'libfreerdp/gdi/graphics.c:87,24'
          Dst:             gdi_CreateCompatibleBitmap
        - Src:             'libfreerdp/gdi/graphics.c:92,7'
          Dst:             gdi_create_bitmap
        - Src:             'libfreerdp/gdi/graphics.c:97,3'
          Dst:             gdi_DeleteDC
        - Src:             'libfreerdp/gdi/graphics.c:103,2'
          Dst:             gdi_SelectObject
    - functionName:    gdi_create_bitmap
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          118
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - freerdp_image_copy_no_overlap
        - gdi_CreateBitmap
        - winpr_aligned_free
        - winpr_aligned_malloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/graphics.c:53,22'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/graphics.c:54,13'
          Dst:             winpr_aligned_malloc
        - Src:             'libfreerdp/gdi/graphics.c:60,22'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/graphics.c:62,7'
          Dst:             freerdp_image_copy_no_overlap
        - Src:             'libfreerdp/gdi/graphics.c:66,3'
          Dst:             winpr_aligned_free
        - Src:             'libfreerdp/gdi/graphics.c:70,11'
          Dst:             gdi_CreateBitmap
        - Src:             'libfreerdp/gdi/graphics.c:72,3'
          Dst:             winpr_aligned_free
    - functionName:    gdi_register_graphics
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/graphics.c'
      linkageType:     InternalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 493
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - graphics_register_bitmap
        - graphics_register_glyph
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/graphics.c:485,2'
          Dst:             graphics_register_bitmap
        - Src:             'libfreerdp/gdi/graphics.c:492,2'
          Dst:             graphics_register_glyph
    - functionName:    gdi_PolyPolyline
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          130
      EdgeCount:       38
      CyclomaticComplexity: 6
      functionsReached:
        - gdi_Polyline
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/line.c:278,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:279,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:286,8'
          Dst:             gdi_Polyline
    - functionName:    gdi_Polyline
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          163
      EdgeCount:       41
      CyclomaticComplexity: 9
      functionsReached:
        - gdi_LineTo
        - gdi_MoveToEx
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/line.c:240,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:241,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:247,8'
          Dst:             gdi_MoveToEx
        - Src:             'libfreerdp/gdi/line.c:252,9'
          Dst:             gdi_LineTo
        - Src:             'libfreerdp/gdi/line.c:255,9'
          Dst:             gdi_MoveToEx
        - Src:             'libfreerdp/gdi/line.c:259,8'
          Dst:             gdi_MoveToEx
    - functionName:    gdi_MoveToEx
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/line.c:305,2'
          Dst:             winpr_int_assert
    - functionName:    gdi_LineTo
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         170
      ICount:          786
      EdgeCount:       202
      CyclomaticComplexity: 34
      functionsReached:
        - gdi_GetPenColor
        - gdi_GetPointer
        - gdi_GetROP2
        - gdi_InvalidateRegion
        - gdi_rop_color
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/line.c:124,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:125,21'
          Dst:             gdi_GetROP2
        - Src:             'libfreerdp/gdi/line.c:129,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:129,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:130,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:130,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:139,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:160,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:167,7'
          Dst:             gdi_InvalidateRegion
        - Src:             'libfreerdp/gdi/line.c:170,8'
          Dst:             gdi_GetPenColor
        - Src:             'libfreerdp/gdi/line.c:178,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:178,39'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:179,34'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:179,34'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:178,19'
          Dst:             gdi_GetPointer
        - Src:             'libfreerdp/gdi/line.c:180,5'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:181,5'
          Dst:             gdi_rop_color
    - functionName:    gdi_rop_color
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          182
      EdgeCount:       55
      CyclomaticComplexity: 29
      functionsReached:
        - FreeRDPGetColor
        - FreeRDPReadColor
        - FreeRDPWriteColor
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/gdi/line.c:46,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/gdi/line.c:42,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:43,26'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/gdi/line.c:49,15'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/gdi/line.c:109,15'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/gdi/line.c:116,9'
          Dst:             FreeRDPWriteColor
    - functionName:    gdi_PolylineTo
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          120
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - gdi_LineTo
        - gdi_MoveToEx
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/line.c:216,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:217,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/line.c:221,8'
          Dst:             gdi_LineTo
        - Src:             'libfreerdp/gdi/line.c:224,8'
          Dst:             gdi_MoveToEx
    - functionName:    FreeRDPConvertColor
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetColor
        - FreeRDPSplitColor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:277,3'
          Dst:             FreeRDPSplitColor
        - Src:             'include/freerdp/codec/color.h:278,10'
          Dst:             FreeRDPGetColor
    - functionName:    gdi_GetPenColor
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/pen.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPConvertColor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/pen.c:64,9'
          Dst:             FreeRDPConvertColor
    - functionName:    gdi_CreatePen
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/pen.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/pen.c:49,28'
          Dst:             calloc
        - Src:             'libfreerdp/gdi/pen.c:55,2'
          Dst:             winpr_int_assert
    - functionName:    gdi_InvalidateRegion
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 614
      functionLinenumberEnd: 687
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          326
      EdgeCount:       55
      CyclomaticComplexity: 17
      functionsReached:
        - gdi_CRgnToRect
        - gdi_RectToRgn
        - gdi_RgnToRect
        - gdi_SetRgn
        - realloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:636,23'
          Dst:             realloc
        - Src:             'libfreerdp/gdi/region.c:648,7'
          Dst:             gdi_SetRgn
        - Src:             'libfreerdp/gdi/region.c:651,7'
          Dst:             gdi_CRgnToRect
        - Src:             'libfreerdp/gdi/region.c:671,7'
          Dst:             gdi_RgnToRect
        - Src:             'libfreerdp/gdi/region.c:686,9'
          Dst:             gdi_RectToRgn
    - functionName:    gdi_SetRgn
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 504
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_CRgnToRect
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - size_t
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          216
      EdgeCount:       55
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:331,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/region.c:332,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/region.c:333,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/region.c:334,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/region.c:355,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    gdi_RgnToRect
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          117
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - gdi_regn_str
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:304,3'
          Dst:             gdi_regn_str
        - Src:             'libfreerdp/gdi/region.c:304,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    gdi_RectToRgn
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          139
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:146,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/region.c:147,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/region.c:155,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:    11
      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:    gdi_regn_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          70
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - snprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:58,8'
          Dst:             snprintf
    - functionName:    gdi_PtInRect
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          64
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_CopyRect
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 565
      functionLinenumberEnd: 574
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_EqualRgn
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 552
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          92
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:549,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/region.c:550,2'
          Dst:             winpr_int_assert
    - functionName:    gdi_SetRectRgn
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - gdi_CRectToRgn
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:532,7'
          Dst:             gdi_CRectToRgn
    - functionName:    gdi_CRectToRgn
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          115
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:194,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    gdi_SetRect
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_CopyOverlap
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          110
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - gdi_CRgnToRect
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:448,7'
          Dst:             gdi_CRgnToRect
        - Src:             'libfreerdp/gdi/region.c:450,7'
          Dst:             gdi_CRgnToRect
    - functionName:    gdi_CRgnToCRect
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 406
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          80
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:416,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/region.c:426,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    gdi_RgnToCRect
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - gdi_regn_str
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:376,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/region.c:380,3'
          Dst:             gdi_regn_str
        - Src:             'libfreerdp/gdi/region.c:380,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    gdi_CRectToCRgn
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          123
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:271,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    gdi_rect_str
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          70
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - snprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:45,8'
          Dst:             snprintf
    - functionName:    gdi_RectToCRgn
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          121
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - gdi_rect_str
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:228,3'
          Dst:             gdi_rect_str
        - Src:             'libfreerdp/gdi/region.c:228,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/region.c:238,3'
          Dst:             gdi_rect_str
        - Src:             'libfreerdp/gdi/region.c:238,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    gdi_CreateRect
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:125,21'
          Dst:             calloc
    - functionName:    gdi_CreateRectRgn
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/region.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          118
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/region.c:87,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/region.c:93,19'
          Dst:             calloc
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_Rectangle
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/shape.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          182
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - FreeRDPWriteColor
        - gdi_ClipCoords
        - gdi_get_bitmap_pointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/shape.c:269,7'
          Dst:             gdi_ClipCoords
        - Src:             'libfreerdp/gdi/shape.c:276,19'
          Dst:             gdi_get_bitmap_pointer
        - Src:             'libfreerdp/gdi/shape.c:277,20'
          Dst:             gdi_get_bitmap_pointer
        - Src:             'libfreerdp/gdi/shape.c:280,4'
          Dst:             FreeRDPWriteColor
        - Src:             'libfreerdp/gdi/shape.c:283,4'
          Dst:             FreeRDPWriteColor
        - Src:             'libfreerdp/gdi/shape.c:288,18'
          Dst:             gdi_get_bitmap_pointer
        - Src:             'libfreerdp/gdi/shape.c:289,21'
          Dst:             gdi_get_bitmap_pointer
        - Src:             'libfreerdp/gdi/shape.c:292,4'
          Dst:             FreeRDPWriteColor
        - Src:             'libfreerdp/gdi/shape.c:295,4'
          Dst:             FreeRDPWriteColor
    - functionName:    gdi_get_bitmap_pointer
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/../gdi/gdi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          241
      EdgeCount:       65
      CyclomaticComplexity: 12
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:46,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:46,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:47,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:47,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:47,52'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:52,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - 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:    gdi_PolyPolygon
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/shape.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 262
      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:             'libfreerdp/gdi/shape.c:261,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    gdi_Polygon
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/shape.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 246
      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:             'libfreerdp/gdi/shape.c:245,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeRDPConvertColor
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetColor
        - FreeRDPSplitColor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:277,3'
          Dst:             FreeRDPSplitColor
        - Src:             'include/freerdp/codec/color.h:278,10'
          Dst:             FreeRDPGetColor
    - functionName:    gdi_FillRect
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/shape.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         221
      ICount:          958
      EdgeCount:       259
      CyclomaticComplexity: 40
      functionsReached:
        - FreeRDPConvertColor
        - FreeRDPGetBytesPerPixel
        - FreeRDPReadColor
        - FreeRDPWriteColor
        - gdi_ClipCoords
        - gdi_InvalidateRegion
        - gdi_RectToCRgn
        - gdi_get_bitmap_pointer
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/gdi/shape.c:151,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/gdi/shape.c:142,7'
          Dst:             gdi_RectToCRgn
        - Src:             'libfreerdp/gdi/shape.c:148,7'
          Dst:             gdi_ClipCoords
        - Src:             'libfreerdp/gdi/shape.c:159,18'
          Dst:             gdi_get_bitmap_pointer
        - Src:             'libfreerdp/gdi/shape.c:162,6'
          Dst:             FreeRDPWriteColor
        - Src:             'libfreerdp/gdi/shape.c:165,23'
          Dst:             gdi_get_bitmap_pointer
        - Src:             'libfreerdp/gdi/shape.c:166,30'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/shape.c:172,18'
          Dst:             gdi_get_bitmap_pointer
        - Src:             'libfreerdp/gdi/shape.c:175,31'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:175,31'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:184,30'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/shape.c:193,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:193,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:194,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:194,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:195,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:195,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:196,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:196,11'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:198,38'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:198,38'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:199,31'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:199,31'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:200,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:200,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:214,26'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/gdi/shape.c:216,11'
          Dst:             FreeRDPConvertColor
        - Src:             'libfreerdp/gdi/shape.c:219,19'
          Dst:             gdi_get_bitmap_pointer
        - Src:             'libfreerdp/gdi/shape.c:221,7'
          Dst:             FreeRDPWriteColor
        - Src:             'libfreerdp/gdi/shape.c:231,9'
          Dst:             gdi_InvalidateRegion
    - functionName:    Ellipse_Bresenham
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/shape.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         280
      ICount:          1057
      EdgeCount:       324
      CyclomaticComplexity: 46
      functionsReached:
        - gdi_SetPixel
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/shape.c:68,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:68,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:69,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:69,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:68,3'
          Dst:             gdi_SetPixel
        - Src:             'libfreerdp/gdi/shape.c:70,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:70,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:71,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:71,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:70,3'
          Dst:             gdi_SetPixel
        - Src:             'libfreerdp/gdi/shape.c:72,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:72,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:73,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:73,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:72,3'
          Dst:             gdi_SetPixel
        - Src:             'libfreerdp/gdi/shape.c:74,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:74,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:75,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:75,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:74,3'
          Dst:             gdi_SetPixel
        - Src:             'libfreerdp/gdi/shape.c:99,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:99,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:100,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:100,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:99,3'
          Dst:             gdi_SetPixel
        - Src:             'libfreerdp/gdi/shape.c:101,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:101,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:102,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:102,16'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/shape.c:101,3'
          Dst:             gdi_SetPixel
    - functionName:    gdi_Ellipse
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/shape.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Ellipse_Bresenham
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/shape.c:121,9'
          Dst:             Ellipse_Bresenham
    - 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:    nine_grid_cache_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/nine_grid.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          67
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nine_grid_cache_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/nine_grid.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          118
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - freerdp_settings_set_uint32
        - nine_grid_cache_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/nine_grid.c:82,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/nine_grid.c:85,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/cache/nine_grid.c:87,33'
          Dst:             calloc
        - Src:             'libfreerdp/cache/nine_grid.c:96,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/cache/nine_grid.c:98,7'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/cache/nine_grid.c:102,41'
          Dst:             calloc
        - Src:             'libfreerdp/cache/nine_grid.c:111,2'
          Dst:             nine_grid_cache_free
    - functionName:    update_gdi_multi_draw_nine_grid
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/nine_grid.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/nine_grid.c:63,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    update_gdi_draw_nine_grid
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/nine_grid.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/cache/nine_grid.c:56,9'
          Dst:             WLog_Print_dbg_tag
    - functionName:    nine_grid_cache_register_callbacks
      functionSourceFile: '/src/FreeRDP/libfreerdp/cache/nine_grid.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          43
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ensure_valid_charset
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - strnlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:70,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:66,21'
          Dst:             strnlen
    - functionName:    freerdp_certificate_data_load_cache
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          163
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - calloc
        - freerdp_certificate_data_hash_
        - freerdp_certificate_get_fingerprint
        - freerdp_certificate_get_issuer
        - freerdp_certificate_get_pem_ex
        - freerdp_certificate_get_subject
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:97,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate_data.c:99,2'
          Dst:             freerdp_certificate_data_hash_
        - Src:             'libfreerdp/crypto/certificate_data.c:101,21'
          Dst:             strnlen
        - Src:             'libfreerdp/crypto/certificate_data.c:105,25'
          Dst:             freerdp_certificate_get_subject
        - Src:             'libfreerdp/crypto/certificate_data.c:107,26'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate_data.c:111,22'
          Dst:             freerdp_certificate_get_pem_ex
        - Src:             'libfreerdp/crypto/certificate_data.c:118,28'
          Dst:             freerdp_certificate_get_pem_ex
        - Src:             'libfreerdp/crypto/certificate_data.c:123,29'
          Dst:             freerdp_certificate_get_fingerprint
        - Src:             'libfreerdp/crypto/certificate_data.c:127,24'
          Dst:             freerdp_certificate_get_issuer
        - Src:             'libfreerdp/crypto/certificate_data.c:129,25'
          Dst:             calloc
    - functionName:    freerdp_certificate_data_hash_
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ensure_lowercase
        - ensure_valid_charset
        - snprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:89,8'
          Dst:             snprintf
        - Src:             'libfreerdp/crypto/certificate_data.c:90,26'
          Dst:             ensure_valid_charset
        - Src:             'libfreerdp/crypto/certificate_data.c:90,9'
          Dst:             ensure_lowercase
    - functionName:    ensure_lowercase
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          51
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - strnlen
        - tolower
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:58,21'
          Dst:             strnlen
        - Src:             'libfreerdp/crypto/certificate_data.c:60,18'
          Dst:             tolower
    - 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:    freerdp_certificate_data_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_certificate_data_hash_
        - strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:309,2'
          Dst:             freerdp_certificate_data_hash_
        - Src:             'libfreerdp/crypto/certificate_data.c:310,9'
          Dst:             strndup
    - functionName:    freerdp_certificate_data_get_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_data_equal
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          116
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - freerdp_certificate_data_get_fingerprint
        - strcmp
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate_data.c:281,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate_data.c:283,6'
          Dst:             strcmp
        - Src:             'libfreerdp/crypto/certificate_data.c:288,21'
          Dst:             freerdp_certificate_data_get_fingerprint
        - Src:             'libfreerdp/crypto/certificate_data.c:289,21'
          Dst:             freerdp_certificate_data_get_fingerprint
        - Src:             'libfreerdp/crypto/certificate_data.c:291,8'
          Dst:             strcmp
    - functionName:    freerdp_certificate_data_get_fingerprint
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_issuer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_subject
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_pem_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_certificate_data_get_pem_ex
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:241,9'
          Dst:             freerdp_certificate_data_get_pem_ex
    - functionName:    freerdp_certificate_data_get_port
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_host
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_data_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_certificate_free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:215,2'
          Dst:             freerdp_certificate_free
    - functionName:    freerdp_certificate_data_new_from_file
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_certificate_data_new_nocopy
        - freerdp_certificate_free
        - freerdp_certificate_new_from_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:202,25'
          Dst:             freerdp_certificate_new_from_file
        - Src:             'libfreerdp/crypto/certificate_data.c:203,29'
          Dst:             freerdp_certificate_data_new_nocopy
        - Src:             'libfreerdp/crypto/certificate_data.c:205,3'
          Dst:             freerdp_certificate_free
    - functionName:    freerdp_certificate_data_new_nocopy
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          107
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - _strdup
        - calloc
        - ensure_lowercase
        - freerdp_certificate_data_free
        - freerdp_certificate_data_load_cache
        - strlen
        - strnlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:143,6'
          Dst:             strnlen
        - Src:             'libfreerdp/crypto/certificate_data.c:145,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate_data.c:149,34'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate_data.c:155,23'
          Dst:             _strdup
        - Src:             'libfreerdp/crypto/certificate_data.c:158,39'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/certificate_data.c:158,2'
          Dst:             ensure_lowercase
        - Src:             'libfreerdp/crypto/certificate_data.c:161,7'
          Dst:             freerdp_certificate_data_load_cache
        - Src:             'libfreerdp/crypto/certificate_data.c:169,2'
          Dst:             freerdp_certificate_data_free
    - functionName:    freerdp_certificate_data_new_from_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          64
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_certificate_data_new_nocopy
        - freerdp_certificate_free
        - freerdp_certificate_new_from_pem
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:189,25'
          Dst:             freerdp_certificate_new_from_pem
        - Src:             'libfreerdp/crypto/certificate_data.c:190,29'
          Dst:             freerdp_certificate_data_new_nocopy
        - Src:             'libfreerdp/crypto/certificate_data.c:192,3'
          Dst:             freerdp_certificate_free
    - functionName:    freerdp_certificate_data_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_certificate_clone
        - freerdp_certificate_data_new_nocopy
        - freerdp_certificate_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:176,25'
          Dst:             freerdp_certificate_clone
        - Src:             'libfreerdp/crypto/certificate_data.c:177,29'
          Dst:             freerdp_certificate_data_new_nocopy
        - Src:             'libfreerdp/crypto/certificate_data.c:179,3'
          Dst:             freerdp_certificate_free
    - functionName:    freerdp_certificate_store_get_certs_path
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_store.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 186
      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:             'libfreerdp/crypto/certificate_store.c:185,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_certificate_store_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_store.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_store_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_store.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          76
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - GetCombinedPath
        - calloc
        - freerdp_certificate_store_free
        - freerdp_settings_get_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_store.c:149,53'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate_store.c:154,21'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/crypto/certificate_store.c:158,22'
          Dst:             GetCombinedPath
        - Src:             'libfreerdp/crypto/certificate_store.c:159,23'
          Dst:             GetCombinedPath
        - Src:             'libfreerdp/crypto/certificate_store.c:168,2'
          Dst:             freerdp_certificate_store_free
    - functionName:    freerdp_certificate_store_get_cert_path
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_store.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          57
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_certificate_data_hash
        - freerdp_certificate_store_file_path
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_store.c:198,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate_store.c:200,15'
          Dst:             freerdp_certificate_data_hash
        - Src:             'libfreerdp/crypto/certificate_store.c:203,15'
          Dst:             freerdp_certificate_store_file_path
    - functionName:    freerdp_certificate_store_file_path
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_store.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - GetCombinedPath
        - freerdp_certificate_store_get_hosts_path
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_store.c:53,22'
          Dst:             freerdp_certificate_store_get_hosts_path
        - Src:             'libfreerdp/crypto/certificate_store.c:58,9'
          Dst:             GetCombinedPath
    - functionName:    freerdp_certificate_store_get_hosts_path
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_store.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 192
      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:             'libfreerdp/crypto/certificate_store.c:191,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_certificate_store_save_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_store.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          89
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - fclose
        - fprintf
        - freerdp_certificate_data_get_hash
        - freerdp_certificate_data_get_pem_ex
        - freerdp_certificate_store_file_path
        - freerdp_certificate_store_get_hosts_path
        - winpr_PathFileExists
        - winpr_PathMakePath
        - winpr_fopen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_store.c:103,21'
          Dst:             freerdp_certificate_store_get_hosts_path
        - Src:             'libfreerdp/crypto/certificate_store.c:104,21'
          Dst:             freerdp_certificate_data_get_hash
        - Src:             'libfreerdp/crypto/certificate_store.c:105,15'
          Dst:             freerdp_certificate_store_file_path
        - Src:             'libfreerdp/crypto/certificate_store.c:108,7'
          Dst:             winpr_PathFileExists
        - Src:             'libfreerdp/crypto/certificate_store.c:110,8'
          Dst:             winpr_PathMakePath
        - Src:             'libfreerdp/crypto/certificate_store.c:114,7'
          Dst:             winpr_fopen
        - Src:             'libfreerdp/crypto/certificate_store.c:118,26'
          Dst:             freerdp_certificate_data_get_pem_ex
        - Src:             'libfreerdp/crypto/certificate_store.c:118,8'
          Dst:             fprintf
        - Src:             'libfreerdp/crypto/certificate_store.c:123,9'
          Dst:             fclose
    - 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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_store_remove_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_store.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          77
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_certificate_data_get_hash
        - freerdp_certificate_store_file_path
        - winpr_DeleteFile
        - winpr_PathFileExists
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_store.c:84,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate_store.c:86,21'
          Dst:             freerdp_certificate_data_get_hash
        - Src:             'libfreerdp/crypto/certificate_store.c:89,15'
          Dst:             freerdp_certificate_store_file_path
        - Src:             'libfreerdp/crypto/certificate_store.c:94,6'
          Dst:             winpr_PathFileExists
        - Src:             'libfreerdp/crypto/certificate_store.c:95,8'
          Dst:             winpr_DeleteFile
    - functionName:    freerdp_certificate_store_load_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_store.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          57
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_certificate_data_new_from_file
        - freerdp_certificate_store_get_cert_path
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_store.c:134,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate_store.c:136,9'
          Dst:             freerdp_certificate_store_get_cert_path
        - Src:             'libfreerdp/crypto/certificate_store.c:140,9'
          Dst:             freerdp_certificate_data_new_from_file
    - functionName:    freerdp_certificate_store_contains_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_store.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_certificate_data_equal
        - freerdp_certificate_data_free
        - freerdp_certificate_data_get_host
        - freerdp_certificate_data_get_port
        - freerdp_certificate_store_load_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_store.c:65,21'
          Dst:             freerdp_certificate_data_get_host
        - Src:             'libfreerdp/crypto/certificate_store.c:66,22'
          Dst:             freerdp_certificate_data_get_port
        - Src:             'libfreerdp/crypto/certificate_store.c:68,31'
          Dst:             freerdp_certificate_store_load_data
        - Src:             'libfreerdp/crypto/certificate_store.c:72,7'
          Dst:             freerdp_certificate_data_equal
        - Src:             'libfreerdp/crypto/certificate_store.c:75,2'
          Dst:             freerdp_certificate_data_free
    - 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:    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_Seek_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1207
      functionLinenumberEnd: 1209
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1208,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:    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:    gcc_update_server_random
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1793
      functionLinenumberEnd: 1802
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          61
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_settings_get_pointer_writable
        - freerdp_settings_set_pointer_len
        - winpr_RAND
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1795,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1796,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/gcc.c:1798,15'
          Dst:             freerdp_settings_get_pointer_writable
        - Src:             'libfreerdp/core/gcc.c:1801,9'
          Dst:             winpr_RAND
    - functionName:    earlyServerCapsFromSettings
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 985
      functionLinenumberEnd: 997
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - filterAndLogEarlyServerCapabilityFlags
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:997,9'
          Dst:             filterAndLogEarlyServerCapabilityFlags
    - functionName:    filterAndLogEarlyServerCapabilityFlags
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 966
      functionLinenumberEnd: 981
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          64
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_early_server_caps_string
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:975,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:975,3'
          Dst:             rdp_early_server_caps_string
        - Src:             'libfreerdp/core/gcc.c:975,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    rdp_early_server_caps_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          116
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - snprintf
        - winpr_str_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:145,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:147,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:149,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:151,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:155,9'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:156,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:158,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:159,2'
          Dst:             winpr_str_append
    - 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_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_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_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:    HighColorToString
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gcc.c:54,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    earlyClientCapsFromSettings
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1026
      functionLinenumberEnd: 1066
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          234
      EdgeCount:       57
      CyclomaticComplexity: 14
      functionsReached:
        - filterAndLogEarlyClientCapabilityFlags
        - freerdp_settings_get_bool
        - freerdp_settings_get_uint32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1029,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1033,6'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/gcc.c:1045,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/gcc.c:1066,9'
          Dst:             filterAndLogEarlyClientCapabilityFlags
    - functionName:    filterAndLogEarlyClientCapabilityFlags
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1001
      functionLinenumberEnd: 1022
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          81
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - rdp_early_client_caps_string
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1014,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1014,3'
          Dst:             rdp_early_client_caps_string
        - Src:             'libfreerdp/core/gcc.c:1014,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1021,2'
          Dst:             winpr_int_assert
    - functionName:    rdp_early_client_caps_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          244
      EdgeCount:       55
      CyclomaticComplexity: 15
      functionsReached:
        - snprintf
        - winpr_str_append
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:176,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:178,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:180,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:182,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:184,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:186,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:188,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:190,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:192,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:194,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:196,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:198,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:202,9'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:203,3'
          Dst:             winpr_str_append
        - Src:             'libfreerdp/core/gcc.c:205,8'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:206,2'
          Dst:             winpr_str_append
    - functionName:    ColorDepthToHighColor
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gcc.c:73,2'
          Branch Sides:    []
      Callsites:       []
    - 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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1242,3'
          Dst:             Stream_Fill
    - 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_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:    17
      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_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:    41
      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:    gcc_write_user_data_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 963
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          116
      EdgeCount:       41
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:957,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:958,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gcc.c:960,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:960,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:960,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gcc.c:961,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:961,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:961,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    updateEarlyServerCaps
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1138
      functionLinenumberEnd: 1152
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          126
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - filterAndLogEarlyServerCapabilityFlags
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1139,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1151,2'
          Dst:             filterAndLogEarlyServerCapabilityFlags
    - functionName:    gcc_read_server_multitransport_channel_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2459
      functionLinenumberEnd: 2471
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          76
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - mcs_get_settings
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:2460,26'
          Dst:             mcs_get_settings
        - Src:             'libfreerdp/core/gcc.c:2463,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2464,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2465,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:2468,2'
          Dst:             stream_read_u32_le
    - functionName:    mcs_get_settings
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          47
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:123,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:124,2'
          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:    38
      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:    gcc_read_server_message_channel_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2384
      functionLinenumberEnd: 2395
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:2386,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2387,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2388,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:2391,2'
          Dst:             stream_read_u16_le
    - 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:    13
      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:    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:    gcc_read_server_network_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1945
      functionLinenumberEnd: 1989
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          226
      EdgeCount:       55
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT16
        - Stream_SafeSeekEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1948,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1949,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1950,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1953,21'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/gcc.c:1954,32'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/gcc.c:1959,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1959,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1967,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1972,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1972,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1981,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gcc.c:1986,10'
          Dst:             Stream_SafeSeekEx
    - functionName:    Stream_Get_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u16_le
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:369,10'
          Dst:             stream_read_u16_le
    - functionName:    gcc_read_server_security_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1630
      functionLinenumberEnd: 1790
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         174
      ICount:          740
      EdgeCount:       205
      CyclomaticComplexity: 33
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Read
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_certificate_read_server_cert
        - freerdp_settings_set_pointer_len
        - mcs_get_settings
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gcc.c:1646,2'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/gcc.c:1685,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1634,26'
          Dst:             mcs_get_settings
        - Src:             'libfreerdp/core/gcc.c:1636,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1637,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1639,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1642,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1643,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1649,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1649,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1653,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1653,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1657,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1657,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1661,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1661,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1665,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1665,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1669,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1669,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1676,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1676,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1717,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1717,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1723,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1723,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1737,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1740,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1741,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1745,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1745,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1752,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1756,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/gcc.c:1760,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/gcc.c:1762,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1766,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/gcc.c:1770,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/gcc.c:1776,8'
          Dst:             freerdp_certificate_read_server_cert
        - Src:             'libfreerdp/core/gcc.c:1781,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/gcc.c:1782,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1782,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1785,7'
          Dst:             freerdp_settings_set_pointer_len
        - Src:             'libfreerdp/core/gcc.c:1786,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1786,3'
          Dst:             WLog_PrintTextMessage
    - 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:    3
      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:    gcc_read_server_core_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1508
      functionLinenumberEnd: 1538
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          159
      EdgeCount:       41
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - mcs_get_settings
        - rdp_early_client_caps_string
        - rdp_version_common
        - stream_read_u32_le
        - updateEarlyServerCaps
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1510,26'
          Dst:             mcs_get_settings
        - Src:             'libfreerdp/core/gcc.c:1512,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1513,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1515,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1518,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1519,25'
          Dst:             rdp_version_common
        - Src:             'libfreerdp/core/gcc.c:1521,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gcc.c:1523,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1526,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gcc.c:1530,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1531,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1531,3'
          Dst:             rdp_early_client_caps_string
        - Src:             'libfreerdp/core/gcc.c:1531,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1536,9'
          Dst:             updateEarlyServerCaps
    - functionName:    rdp_version_common
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          131
      EdgeCount:       32
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gcc.c:214,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:234,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:234,4'
          Dst:             WLog_PrintTextMessage
    - 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:    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:    1
      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_Get_INT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 424
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_i32_le
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:424,10'
          Dst:             stream_read_i32_le
    - 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:    updateEarlyClientCaps
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1071
      functionLinenumberEnd: 1133
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          286
      EdgeCount:       57
      CyclomaticComplexity: 14
      functionsReached:
        - filterAndLogEarlyClientCapabilityFlags
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1072,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1132,2'
          Dst:             filterAndLogEarlyClientCapabilityFlags
    - functionName:    Stream_Seek_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1199
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1200,3'
          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:    1
      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_Get_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_read_u32_le
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:413,10'
          Dst:             stream_read_u32_le
    - functionName:    Stream_Seek_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1203
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1204,3'
          Dst:             Stream_Seek
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:1325,3'
          Dst:             winpr_int_assert
    - functionName:    gcc_read_client_multitransport_channel_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2421
      functionLinenumberEnd: 2434
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          76
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - mcs_get_settings
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:2422,26'
          Dst:             mcs_get_settings
        - Src:             'libfreerdp/core/gcc.c:2424,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2425,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2427,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:2431,2'
          Dst:             stream_read_u32_le
    - functionName:    gcc_read_client_unused1_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 570
      functionLinenumberEnd: 571
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_SafeSeekEx
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:571,9'
          Dst:             Stream_SafeSeekEx
    - functionName:    gcc_read_client_monitor_extended_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2255
      functionLinenumberEnd: 2303
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          240
      EdgeCount:       65
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogEx
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - mcs_get_settings
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:2258,26'
          Dst:             mcs_get_settings
        - Src:             'libfreerdp/core/gcc.c:2260,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2261,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2263,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:2266,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:2267,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:2268,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:2272,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:2272,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:2278,7'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
        - Src:             'libfreerdp/core/gcc.c:2284,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:2284,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:2295,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:2296,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:2297,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:2298,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:2299,3'
          Dst:             stream_read_u32_le
    - functionName:    gcc_read_client_message_channel_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2345
      functionLinenumberEnd: 2355
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          74
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:2346,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2347,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2349,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:2352,2'
          Dst:             stream_read_u32_le
    - functionName:    gcc_read_client_monitor_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2116
      functionLinenumberEnd: 2187
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         117
      ICount:          521
      EdgeCount:       138
      CyclomaticComplexity: 23
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_INT32
        - Stream_Get_UINT32
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - mcs_get_settings
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:2118,26'
          Dst:             mcs_get_settings
        - Src:             'libfreerdp/core/gcc.c:2120,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2121,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2123,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:2126,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:2127,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:2135,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:2135,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:2142,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:2142,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:2148,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:2157,22'
          Dst:             Stream_Get_INT32
        - Src:             'libfreerdp/core/gcc.c:2158,21'
          Dst:             Stream_Get_INT32
        - Src:             'libfreerdp/core/gcc.c:2159,23'
          Dst:             Stream_Get_INT32
        - Src:             'libfreerdp/core/gcc.c:2160,24'
          Dst:             Stream_Get_INT32
        - Src:             'libfreerdp/core/gcc.c:2161,24'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gcc.c:2165,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:2165,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:2174,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:2174,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:2181,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2181,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2182,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2182,21'
          Dst:             winpr_int_assert
    - functionName:    gcc_read_client_cluster_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2028
      functionLinenumberEnd: 2058
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          161
      EdgeCount:       39
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetRemainingLength
        - Stream_Seek
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - mcs_get_settings
        - rdp_cluster_info_flags_to_string
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:2031,26'
          Dst:             mcs_get_settings
        - Src:             'libfreerdp/core/gcc.c:2033,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2034,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2036,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:2039,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:2040,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:2042,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:2042,2'
          Dst:             rdp_cluster_info_flags_to_string
        - Src:             'libfreerdp/core/gcc.c:2042,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:2051,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gcc.c:2054,18'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gcc.c:2054,3'
          Dst:             Stream_Seek
    - functionName:    gcc_read_client_network_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1865
      functionLinenumberEnd: 1909
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          200
      EdgeCount:       53
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Read
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - memchr
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1866,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1867,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1869,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1872,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1874,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1879,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1879,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1894,3'
          Dst:             Stream_Read
        - Src:             'libfreerdp/core/gcc.c:1896,8'
          Dst:             memchr
        - Src:             'libfreerdp/core/gcc.c:1898,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1898,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1904,3'
          Dst:             stream_read_u32_le
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gcc_read_client_security_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1570
      functionLinenumberEnd: 1594
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          103
      EdgeCount:       31
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Seek
        - mcs_get_settings
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1571,26'
          Dst:             mcs_get_settings
        - Src:             'libfreerdp/core/gcc.c:1573,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1574,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1576,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1581,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1584,4'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1586,4'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/gcc.c:1590,3'
          Dst:             Stream_Seek
    - functionName:    gcc_read_client_core_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1165
      functionLinenumberEnd: 1400
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         172
      ICount:          777
      EdgeCount:       205
      CyclomaticComplexity: 35
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_Get_UINT16
        - Stream_Get_UINT32
        - Stream_Read_UTF16_String_As_UTF8_Buffer
        - Stream_Seek
        - Stream_Seek_UINT16
        - Stream_Seek_UINT8
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_get_bool
        - freerdp_settings_get_uint32
        - freerdp_settings_set_string
        - freerdp_settings_set_uint32
        - mcs_get_settings
        - rdp_early_client_caps_string
        - rdp_version_common
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - updateEarlyClientCaps
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gcc.c:1340,3'
          Branch Sides:    []
        - Branch String:   'libfreerdp/core/gcc.c:1368,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1175,26'
          Dst:             mcs_get_settings
        - Src:             'libfreerdp/core/gcc.c:1177,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1178,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1181,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1184,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1185,25'
          Dst:             rdp_version_common
        - Src:             'libfreerdp/core/gcc.c:1186,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gcc.c:1187,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gcc.c:1188,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gcc.c:1189,2'
          Dst:             Stream_Seek_UINT16
        - Src:             'libfreerdp/core/gcc.c:1190,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1191,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1194,6'
          Dst:             Stream_Read_UTF16_String_As_UTF8_Buffer
        - Src:             'libfreerdp/core/gcc.c:1197,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1197,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1201,7'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/gcc.c:1204,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1205,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1206,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1207,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/gcc.c:1218,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1221,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gcc.c:1223,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1226,34'
          Dst:             Stream_Get_UINT16
        - Src:             'libfreerdp/core/gcc.c:1233,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1233,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1239,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1242,31'
          Dst:             Stream_Get_UINT32
        - Src:             'libfreerdp/core/gcc.c:1249,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1249,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1255,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1258,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gcc.c:1260,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1263,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gcc.c:1265,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1268,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gcc.c:1271,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1274,7'
          Dst:             Stream_Read_UTF16_String_As_UTF8_Buffer
        - Src:             'libfreerdp/core/gcc.c:1277,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1277,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1281,8'
          Dst:             freerdp_settings_set_string
        - Src:             'libfreerdp/core/gcc.c:1284,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1287,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/core/gcc.c:1289,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1292,3'
          Dst:             Stream_Seek_UINT8
        - Src:             'libfreerdp/core/gcc.c:1294,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1297,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1299,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1302,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1304,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1307,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1310,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1313,3'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gcc.c:1315,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1318,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1320,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:1323,3'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/core/gcc.c:1325,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/gcc.c:1387,26'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/gcc.c:1390,8'
          Dst:             freerdp_settings_set_uint32
        - Src:             'libfreerdp/core/gcc.c:1394,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1394,2'
          Dst:             rdp_early_client_caps_string
        - Src:             'libfreerdp/core/gcc.c:1394,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1398,9'
          Dst:             updateEarlyClientCaps
    - functionName:    gcc_block_type_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 756
      functionLinenumberEnd: 805
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          158
      EdgeCount:       37
      CyclomaticComplexity: 20
      functionsReached:
        - snprintf
      functionUses:    5
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gcc.c:757,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:760,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:763,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:766,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:769,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:772,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:775,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:778,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:781,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:784,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:787,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:790,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:793,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:796,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:799,10'
          Dst:             snprintf
        - Src:             'libfreerdp/core/gcc.c:802,10'
          Dst:             snprintf
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    gcc_read_user_data_header
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 931
      functionLinenumberEnd: 941
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          86
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:932,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:933,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:936,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gcc.c:937,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/core/gcc.c:940,13'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
    - functionName:    gcc_write_server_multitransport_channel_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2474
      functionLinenumberEnd: 2485
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          97
      EdgeCount:       33
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write_UINT32_unchecked
        - gcc_write_user_data_header
        - mcs_get_const_settings
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:2475,32'
          Dst:             mcs_get_const_settings
        - Src:             'libfreerdp/core/gcc.c:2477,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2478,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2480,7'
          Dst:             gcc_write_user_data_header
        - Src:             'libfreerdp/core/gcc.c:2483,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2483,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2483,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    mcs_get_const_settings
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          47
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:131,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:132,2'
          Dst:             winpr_int_assert
    - functionName:    gcc_write_server_message_channel_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2398
      functionLinenumberEnd: 2409
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          107
      EdgeCount:       36
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - gcc_write_user_data_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:2399,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2400,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2404,7'
          Dst:             gcc_write_user_data_header
        - Src:             'libfreerdp/core/gcc.c:2407,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2407,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2407,2'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    gcc_write_server_security_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1808
      functionLinenumberEnd: 1852
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         106
      ICount:          363
      EdgeCount:       114
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek_UINT32
        - Stream_SetPosition
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - freerdp_certificate_write_server_cert
        - gcc_update_server_random
        - gcc_write_user_data_header
        - mcs_get_const_settings
        - mcs_get_settings
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1809,32'
          Dst:             mcs_get_settings
        - Src:             'libfreerdp/core/gcc.c:1809,7'
          Dst:             gcc_update_server_random
        - Src:             'libfreerdp/core/gcc.c:1812,32'
          Dst:             mcs_get_const_settings
        - Src:             'libfreerdp/core/gcc.c:1814,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1815,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1817,27'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gcc.c:1818,7'
          Dst:             gcc_write_user_data_header
        - Src:             'libfreerdp/core/gcc.c:1821,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1821,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1821,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1822,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1822,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1822,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1827,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gcc.c:1829,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1829,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1829,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1830,28'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gcc.c:1831,2'
          Dst:             Stream_Seek_UINT32
        - Src:             'libfreerdp/core/gcc.c:1832,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gcc.c:1834,22'
          Dst:             freerdp_certificate_write_server_cert
        - Src:             'libfreerdp/core/gcc.c:1838,21'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gcc.c:1840,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1842,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1843,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/gcc.c:1845,7'
          Dst:             gcc_write_user_data_header
        - Src:             'libfreerdp/core/gcc.c:1847,7'
          Dst:             Stream_SetPosition
        - Src:             'libfreerdp/core/gcc.c:1849,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1850,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1850,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1850,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1851,9'
          Dst:             Stream_SetPosition
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    gcc_write_server_network_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1992
      functionLinenumberEnd: 2016
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         142
      ICount:          447
      EdgeCount:       154
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_Write_UINT16_unchecked
        - gcc_write_user_data_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1993,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1994,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1998,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1999,7'
          Dst:             gcc_write_user_data_header
        - Src:             'libfreerdp/core/gcc.c:2002,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gcc.c:2003,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2003,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2003,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2003,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2003,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2003,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2003,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2003,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2003,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gcc.c:2009,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2009,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2009,3'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gcc.c:2013,3'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    gcc_write_server_core_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1544
      functionLinenumberEnd: 1558
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         60
      ICount:          172
      EdgeCount:       61
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write_UINT32_unchecked
        - earlyServerCapsFromSettings
        - gcc_write_user_data_header
        - mcs_get_const_settings
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1545,32'
          Dst:             mcs_get_const_settings
        - Src:             'libfreerdp/core/gcc.c:1547,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1548,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1550,7'
          Dst:             gcc_write_user_data_header
        - Src:             'libfreerdp/core/gcc.c:1553,38'
          Dst:             earlyServerCapsFromSettings
        - Src:             'libfreerdp/core/gcc.c:1554,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1554,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1554,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1555,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1555,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1555,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1556,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1556,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1556,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    gcc_write_server_data_blocks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 910
      functionLinenumberEnd: 928
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          129
      EdgeCount:       42
      CyclomaticComplexity: 8
      functionsReached:
        - gcc_write_server_core_data
        - gcc_write_server_message_channel_data
        - gcc_write_server_multitransport_channel_data
        - gcc_write_server_network_data
        - gcc_write_server_security_data
        - mcs_get_const_settings
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:911,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:912,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:914,7'
          Dst:             gcc_write_server_core_data
        - Src:             'libfreerdp/core/gcc.c:915,7'
          Dst:             gcc_write_server_network_data
        - Src:             'libfreerdp/core/gcc.c:916,7'
          Dst:             gcc_write_server_security_data
        - Src:             'libfreerdp/core/gcc.c:917,7'
          Dst:             gcc_write_server_message_channel_data
        - Src:             'libfreerdp/core/gcc.c:920,32'
          Dst:             mcs_get_const_settings
        - Src:             'libfreerdp/core/gcc.c:921,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:925,10'
          Dst:             gcc_write_server_multitransport_channel_data
    - functionName:    gcc_write_client_multitransport_channel_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2447
      functionLinenumberEnd: 2456
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          97
      EdgeCount:       33
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write_UINT32_unchecked
        - gcc_write_user_data_header
        - mcs_get_const_settings
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:2448,32'
          Dst:             mcs_get_const_settings
        - Src:             'libfreerdp/core/gcc.c:2450,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2451,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2452,7'
          Dst:             gcc_write_user_data_header
        - Src:             'libfreerdp/core/gcc.c:2454,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2454,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2454,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    gcc_write_client_message_channel_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2367
      functionLinenumberEnd: 2381
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          143
      EdgeCount:       50
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Write_UINT32_unchecked
        - freerdp_settings_get_bool
        - gcc_write_user_data_header
        - mcs_get_const_settings
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:2368,32'
          Dst:             mcs_get_const_settings
        - Src:             'libfreerdp/core/gcc.c:2370,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2371,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2372,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2373,6'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/gcc.c:2376,8'
          Dst:             gcc_write_user_data_header
        - Src:             'libfreerdp/core/gcc.c:2378,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2378,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2378,3'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    gcc_write_client_monitor_extended_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2306
      functionLinenumberEnd: 2333
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         139
      ICount:          406
      EdgeCount:       142
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write_UINT32_unchecked
        - gcc_write_user_data_header
        - mcs_get_const_settings
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:2307,32'
          Dst:             mcs_get_const_settings
        - Src:             'libfreerdp/core/gcc.c:2309,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2310,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2315,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2316,8'
          Dst:             gcc_write_user_data_header
        - Src:             'libfreerdp/core/gcc.c:2318,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2318,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2318,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:2319,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:2320,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2320,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2320,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:2325,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2325,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2325,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:2326,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2326,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2326,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:2327,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2327,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2327,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:2328,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2328,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2328,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:2329,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2329,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2329,4'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    gcc_write_client_monitor_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2199
      functionLinenumberEnd: 2252
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         157
      ICount:          524
      EdgeCount:       165
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_Write_INT32_unchecked
        - Stream_Write_UINT32_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - gcc_write_user_data_header
        - mcs_get_const_settings
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:2202,32'
          Dst:             mcs_get_const_settings
        - Src:             'libfreerdp/core/gcc.c:2204,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2205,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2207,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:2207,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:2211,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2213,8'
          Dst:             gcc_write_user_data_header
        - Src:             'libfreerdp/core/gcc.c:2215,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2215,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2215,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:2216,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2216,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2216,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:2239,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:2239,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:2243,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2243,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2243,4'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:2244,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2244,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2244,4'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:2245,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2245,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2245,4'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:2246,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2246,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2246,4'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:2247,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2247,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2247,4'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:2250,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:2250,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    gcc_write_client_network_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1921
      functionLinenumberEnd: 1942
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         59
      ICount:          195
      EdgeCount:       62
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - gcc_write_user_data_header
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1922,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1923,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1927,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1928,8'
          Dst:             gcc_write_user_data_header
        - Src:             'libfreerdp/core/gcc.c:1930,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1930,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1930,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1937,4'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gcc.c:1938,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1938,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1938,4'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    gcc_write_client_security_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1606
      functionLinenumberEnd: 1627
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         69
      ICount:          169
      EdgeCount:       71
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Write_UINT32_unchecked
        - gcc_write_user_data_header
        - mcs_get_const_settings
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1607,32'
          Dst:             mcs_get_const_settings
        - Src:             'libfreerdp/core/gcc.c:1609,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1610,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1612,7'
          Dst:             gcc_write_user_data_header
        - Src:             'libfreerdp/core/gcc.c:1617,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1617,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1617,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1618,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1623,3'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1624,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1624,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1624,3'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    gcc_write_client_cluster_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2070
      functionLinenumberEnd: 2104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         70
      ICount:          249
      EdgeCount:       78
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_Write_UINT32_unchecked
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_get_bool
        - gcc_write_user_data_header
        - mcs_get_const_settings
        - rdp_cluster_info_flags_to_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:2073,32'
          Dst:             mcs_get_const_settings
        - Src:             'libfreerdp/core/gcc.c:2075,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2076,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2078,7'
          Dst:             gcc_write_user_data_header
        - Src:             'libfreerdp/core/gcc.c:2092,7'
          Dst:             freerdp_settings_get_bool
        - Src:             'libfreerdp/core/gcc.c:2098,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:2098,2'
          Dst:             rdp_cluster_info_flags_to_string
        - Src:             'libfreerdp/core/gcc.c:2098,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:2101,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2101,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2101,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:2102,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2102,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:2102,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    gcc_write_client_core_data
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1412
      functionLinenumberEnd: 1505
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         546
      ICount:          1624
      EdgeCount:       581
      CyclomaticComplexity: 37
      functionsReached:
        - ColorDepthToHighColor
        - ConvertUtf8ToWCharAlloc
        - HighColorToString
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - Stream_Write_UTF16_String_From_UTF8
        - Stream_Zero
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - earlyClientCapsFromSettings
        - freerdp_settings_get_string
        - freerdp_settings_get_uint16
        - freerdp_settings_get_uint32
        - freerdp_supported_color_depths_string
        - gcc_write_user_data_header
        - mcs_get_const_settings
        - rdp_early_client_caps_string
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:1419,32'
          Dst:             mcs_get_const_settings
        - Src:             'libfreerdp/core/gcc.c:1421,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1422,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1425,6'
          Dst:             freerdp_settings_get_uint16
        - Src:             'libfreerdp/core/gcc.c:1426,28'
          Dst:             freerdp_settings_get_uint32
        - Src:             'libfreerdp/core/gcc.c:1428,7'
          Dst:             gcc_write_user_data_header
        - Src:             'libfreerdp/core/gcc.c:1431,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1431,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1431,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1432,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1432,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1432,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1432,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1432,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1432,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1432,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1432,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1432,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gcc.c:1434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1434,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1434,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gcc.c:1436,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gcc.c:1438,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gcc.c:1439,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1439,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1439,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1440,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1440,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1440,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1442,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gcc.c:1447,22'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'libfreerdp/core/gcc.c:1454,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/core/gcc.c:1455,2'
          Dst:             Stream_Zero
        - Src:             'libfreerdp/core/gcc.c:1457,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1457,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1457,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1458,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1458,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1458,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1459,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1459,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1459,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1460,2'
          Dst:             Stream_Zero
        - Src:             'libfreerdp/core/gcc.c:1461,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gcc.c:1462,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gcc.c:1463,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1464,19'
          Dst:             ColorDepthToHighColor
        - Src:             'libfreerdp/core/gcc.c:1465,25'
          Dst:             earlyClientCapsFromSettings
        - Src:             'libfreerdp/core/gcc.c:1467,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1470,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gcc.c:1473,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:1473,2'
          Dst:             HighColorToString
        - Src:             'libfreerdp/core/gcc.c:1473,2'
          Dst:             freerdp_supported_color_depths_string
        - Src:             'libfreerdp/core/gcc.c:1473,2'
          Dst:             rdp_early_client_caps_string
        - Src:             'libfreerdp/core/gcc.c:1473,2'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:1479,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1479,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1479,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1479,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1479,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1479,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1479,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1479,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1479,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gcc.c:1480,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1480,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1480,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gcc.c:1481,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1481,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1481,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gcc.c:1483,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/core/gcc.c:1487,20'
          Dst:             freerdp_settings_get_string
        - Src:             'libfreerdp/core/gcc.c:1490,55'
          Dst:             strnlen
        - Src:             'libfreerdp/core/gcc.c:1490,7'
          Dst:             Stream_Write_UTF16_String_From_UTF8
        - Src:             'libfreerdp/core/gcc.c:1494,3'
          Dst:             Stream_Zero
        - Src:             'libfreerdp/core/gcc.c:1496,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1496,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1496,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gcc.c:1497,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/core/gcc.c:1498,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1498,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1498,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1499,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1499,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1499,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1500,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1500,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1500,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1501,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1501,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1501,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/core/gcc.c:1502,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1502,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1502,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/core/gcc.c:1503,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1503,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:1503,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    gcc_write_client_data_blocks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 705
      functionLinenumberEnd: 753
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          295
      EdgeCount:       96
      CyclomaticComplexity: 21
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - gcc_write_client_cluster_data
        - gcc_write_client_core_data
        - gcc_write_client_message_channel_data
        - gcc_write_client_monitor_data
        - gcc_write_client_monitor_extended_data
        - gcc_write_client_multitransport_channel_data
        - gcc_write_client_network_data
        - gcc_write_client_security_data
        - mcs_get_const_settings
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:706,32'
          Dst:             mcs_get_const_settings
        - Src:             'libfreerdp/core/gcc.c:708,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:709,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:711,7'
          Dst:             gcc_write_client_core_data
        - Src:             'libfreerdp/core/gcc.c:711,46'
          Dst:             gcc_write_client_cluster_data
        - Src:             'libfreerdp/core/gcc.c:712,7'
          Dst:             gcc_write_client_security_data
        - Src:             'libfreerdp/core/gcc.c:712,50'
          Dst:             gcc_write_client_network_data
        - Src:             'libfreerdp/core/gcc.c:721,9'
          Dst:             gcc_write_client_monitor_data
        - Src:             'libfreerdp/core/gcc.c:722,9'
          Dst:             gcc_write_client_monitor_extended_data
        - Src:             'libfreerdp/core/gcc.c:726,8'
          Dst:             gcc_write_client_message_channel_data
        - Src:             'libfreerdp/core/gcc.c:727,8'
          Dst:             gcc_write_client_multitransport_channel_data
        - Src:             'libfreerdp/core/gcc.c:734,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:734,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:739,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:739,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:741,10'
          Dst:             gcc_write_client_monitor_data
        - Src:             'libfreerdp/core/gcc.c:742,10'
          Dst:             gcc_write_client_monitor_extended_data
        - Src:             'libfreerdp/core/gcc.c:747,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:747,5'
          Dst:             WLog_PrintTextMessage
    - functionName:    gcc_write_conference_create_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          169
      EdgeCount:       52
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_Buffer
        - Stream_GetPosition
        - per_write_choice
        - per_write_enumerated
        - per_write_integer
        - per_write_integer16
        - per_write_length
        - per_write_number_of_sets
        - per_write_object_identifier
        - per_write_octet_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:529,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:530,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:532,7'
          Dst:             per_write_choice
        - Src:             'libfreerdp/core/gcc.c:534,7'
          Dst:             per_write_object_identifier
        - Src:             'libfreerdp/core/gcc.c:538,7'
          Dst:             per_write_length
        - Src:             'libfreerdp/core/gcc.c:541,7'
          Dst:             per_write_choice
        - Src:             'libfreerdp/core/gcc.c:544,7'
          Dst:             per_write_integer16
        - Src:             'libfreerdp/core/gcc.c:547,7'
          Dst:             per_write_integer
        - Src:             'libfreerdp/core/gcc.c:550,7'
          Dst:             per_write_enumerated
        - Src:             'libfreerdp/core/gcc.c:553,7'
          Dst:             per_write_number_of_sets
        - Src:             'libfreerdp/core/gcc.c:556,7'
          Dst:             per_write_choice
        - Src:             'libfreerdp/core/gcc.c:559,7'
          Dst:             per_write_octet_string
        - Src:             'libfreerdp/core/gcc.c:563,21'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gcc.c:564,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:565,35'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gcc.c:565,9'
          Dst:             per_write_octet_string
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    gcc_read_server_data_blocks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 809
      functionLinenumberEnd: 907
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         99
      ICount:          414
      EdgeCount:       115
      CyclomaticComplexity: 18
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Pointer
        - Stream_SafeSeekEx
        - Stream_StaticInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - gcc_block_type_string
        - gcc_read_server_core_data
        - gcc_read_server_message_channel_data
        - gcc_read_server_multitransport_channel_data
        - gcc_read_server_network_data
        - gcc_read_server_security_data
        - gcc_read_user_data_header
        - winpr_HexLogDump
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gcc.c:840,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:815,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:816,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:825,8'
          Dst:             gcc_read_user_data_header
        - Src:             'libfreerdp/core/gcc.c:827,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:827,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:831,11'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gcc.c:832,9'
          Dst:             Stream_StaticInit
        - Src:             'libfreerdp/core/gcc.c:833,8'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/core/gcc.c:835,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:835,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:843,10'
          Dst:             gcc_read_server_core_data
        - Src:             'libfreerdp/core/gcc.c:845,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:845,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:853,10'
          Dst:             gcc_read_server_security_data
        - Src:             'libfreerdp/core/gcc.c:858,10'
          Dst:             gcc_read_server_network_data
        - Src:             'libfreerdp/core/gcc.c:860,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:860,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:868,10'
          Dst:             gcc_read_server_message_channel_data
        - Src:             'libfreerdp/core/gcc.c:870,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:870,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:879,10'
          Dst:             gcc_read_server_multitransport_channel_data
        - Src:             'libfreerdp/core/gcc.c:881,6'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:881,6'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:890,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:890,5'
          Dst:             gcc_block_type_string
        - Src:             'libfreerdp/core/gcc.c:890,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:892,44'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gcc.c:893,22'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gcc.c:892,5'
          Dst:             winpr_HexLogDump
        - Src:             'libfreerdp/core/gcc.c:897,10'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gcc.c:900,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:900,4'
          Dst:             gcc_block_type_string
        - Src:             'libfreerdp/core/gcc.c:900,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    gcc_read_conference_create_response
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          203
      EdgeCount:       61
      CyclomaticComplexity: 15
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - gcc_read_server_data_blocks
        - per_read_choice
        - per_read_enumerated
        - per_read_integer
        - per_read_integer16
        - per_read_length
        - per_read_number_of_sets
        - per_read_object_identifier
        - per_read_octet_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:474,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:475,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:477,7'
          Dst:             per_read_choice
        - Src:             'libfreerdp/core/gcc.c:477,39'
          Dst:             per_read_object_identifier
        - Src:             'libfreerdp/core/gcc.c:481,7'
          Dst:             per_read_length
        - Src:             'libfreerdp/core/gcc.c:485,7'
          Dst:             per_read_choice
        - Src:             'libfreerdp/core/gcc.c:489,7'
          Dst:             per_read_integer16
        - Src:             'libfreerdp/core/gcc.c:493,7'
          Dst:             per_read_integer
        - Src:             'libfreerdp/core/gcc.c:497,7'
          Dst:             per_read_enumerated
        - Src:             'libfreerdp/core/gcc.c:501,7'
          Dst:             per_read_number_of_sets
        - Src:             'libfreerdp/core/gcc.c:505,7'
          Dst:             per_read_choice
        - Src:             'libfreerdp/core/gcc.c:509,7'
          Dst:             per_read_octet_string
        - Src:             'libfreerdp/core/gcc.c:514,7'
          Dst:             per_read_length
        - Src:             'libfreerdp/core/gcc.c:517,7'
          Dst:             gcc_read_server_data_blocks
        - Src:             'libfreerdp/core/gcc.c:519,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:519,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    gcc_write_conference_create_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          191
      EdgeCount:       58
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_Buffer
        - Stream_GetPosition
        - per_write_choice
        - per_write_length
        - per_write_number_of_sets
        - per_write_numeric_string
        - per_write_object_identifier
        - per_write_octet_string
        - per_write_padding
        - per_write_selection
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:427,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:428,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:430,7'
          Dst:             per_write_choice
        - Src:             'libfreerdp/core/gcc.c:432,7'
          Dst:             per_write_object_identifier
        - Src:             'libfreerdp/core/gcc.c:435,21'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gcc.c:436,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:437,7'
          Dst:             per_write_length
        - Src:             'libfreerdp/core/gcc.c:440,7'
          Dst:             per_write_choice
        - Src:             'libfreerdp/core/gcc.c:443,7'
          Dst:             per_write_selection
        - Src:             'libfreerdp/core/gcc.c:446,7'
          Dst:             per_write_numeric_string
        - Src:             'libfreerdp/core/gcc.c:448,7'
          Dst:             per_write_padding
        - Src:             'libfreerdp/core/gcc.c:451,7'
          Dst:             per_write_number_of_sets
        - Src:             'libfreerdp/core/gcc.c:453,7'
          Dst:             per_write_choice
        - Src:             'libfreerdp/core/gcc.c:456,7'
          Dst:             per_write_octet_string
        - Src:             'libfreerdp/core/gcc.c:460,22'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/core/gcc.c:461,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:462,35'
          Dst:             Stream_Buffer
        - Src:             'libfreerdp/core/gcc.c:462,9'
          Dst:             per_write_octet_string
    - functionName:    gcc_read_client_data_blocks
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 702
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         101
      ICount:          473
      EdgeCount:       121
      CyclomaticComplexity: 22
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - Stream_GetRemainingLength
        - Stream_Length
        - Stream_Pointer
        - Stream_Seek
        - Stream_StaticConstInit
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - freerdp_settings_set_bool
        - freerdp_settings_set_uint32
        - gcc_block_type_string
        - gcc_read_client_cluster_data
        - gcc_read_client_core_data
        - gcc_read_client_message_channel_data
        - gcc_read_client_monitor_data
        - gcc_read_client_monitor_extended_data
        - gcc_read_client_multitransport_channel_data
        - gcc_read_client_network_data
        - gcc_read_client_security_data
        - gcc_read_client_unused1_data
        - gcc_read_user_data_header
        - mcs_get_settings
        - winpr_HexLogDump
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/core/gcc.c:603,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:576,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:577,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:587,8'
          Dst:             gcc_read_user_data_header
        - Src:             'libfreerdp/core/gcc.c:590,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:593,51'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gcc.c:593,18'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/core/gcc.c:594,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:596,3'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/core/gcc.c:600,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:600,4'
          Dst:             gcc_block_type_string
        - Src:             'libfreerdp/core/gcc.c:600,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:606,10'
          Dst:             gcc_read_client_core_data
        - Src:             'libfreerdp/core/gcc.c:612,10'
          Dst:             gcc_read_client_security_data
        - Src:             'libfreerdp/core/gcc.c:618,10'
          Dst:             gcc_read_client_network_data
        - Src:             'libfreerdp/core/gcc.c:624,10'
          Dst:             gcc_read_client_cluster_data
        - Src:             'libfreerdp/core/gcc.c:630,10'
          Dst:             gcc_read_client_monitor_data
        - Src:             'libfreerdp/core/gcc.c:636,10'
          Dst:             gcc_read_client_message_channel_data
        - Src:             'libfreerdp/core/gcc.c:642,10'
          Dst:             gcc_read_client_monitor_extended_data
        - Src:             'libfreerdp/core/gcc.c:648,10'
          Dst:             gcc_read_client_unused1_data
        - Src:             'libfreerdp/core/gcc.c:656,10'
          Dst:             gcc_read_client_multitransport_channel_data
        - Src:             'libfreerdp/core/gcc.c:662,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:662,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:664,44'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/core/gcc.c:665,22'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gcc.c:664,5'
          Dst:             winpr_HexLogDump
        - Src:             'libfreerdp/core/gcc.c:669,22'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/core/gcc.c:673,25'
          Dst:             Stream_Length
        - Src:             'libfreerdp/core/gcc.c:674,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:674,4'
          Dst:             gcc_block_type_string
        - Src:             'libfreerdp/core/gcc.c:674,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:683,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/core/gcc.c:683,4'
          Dst:             gcc_block_type_string
        - Src:             'libfreerdp/core/gcc.c:683,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'libfreerdp/core/gcc.c:695,27'
          Dst:             mcs_get_settings
        - Src:             'libfreerdp/core/gcc.c:696,8'
          Dst:             freerdp_settings_set_bool
        - Src:             'libfreerdp/core/gcc.c:698,8'
          Dst:             freerdp_settings_set_uint32
    - functionName:    gcc_read_conference_create_request
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/gcc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          211
      EdgeCount:       63
      CyclomaticComplexity: 17
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - gcc_read_client_data_blocks
        - per_read_choice
        - per_read_length
        - per_read_number_of_sets
        - per_read_numeric_string
        - per_read_object_identifier
        - per_read_octet_string
        - per_read_padding
        - per_read_selection
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/core/gcc.c:362,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:363,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/core/gcc.c:365,7'
          Dst:             per_read_choice
        - Src:             'libfreerdp/core/gcc.c:368,7'
          Dst:             per_read_object_identifier
        - Src:             'libfreerdp/core/gcc.c:372,7'
          Dst:             per_read_length
        - Src:             'libfreerdp/core/gcc.c:376,7'
          Dst:             per_read_choice
        - Src:             'libfreerdp/core/gcc.c:379,7'
          Dst:             per_read_selection
        - Src:             'libfreerdp/core/gcc.c:383,7'
          Dst:             per_read_numeric_string
        - Src:             'libfreerdp/core/gcc.c:386,7'
          Dst:             per_read_padding
        - Src:             'libfreerdp/core/gcc.c:390,7'
          Dst:             per_read_number_of_sets
        - Src:             'libfreerdp/core/gcc.c:393,7'
          Dst:             per_read_choice
        - Src:             'libfreerdp/core/gcc.c:398,7'
          Dst:             per_read_octet_string
        - Src:             'libfreerdp/core/gcc.c:403,7'
          Dst:             per_read_length
        - Src:             'libfreerdp/core/gcc.c:406,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'libfreerdp/core/gcc.c:409,7'
          Dst:             gcc_read_client_data_blocks
    - functionName:    op_not
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    op_or
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    op_and
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    op_xor
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_rop
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          134
      EdgeCount:       17
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetColor
        - op_and
        - op_not
        - op_or
        - op_xor
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/gdi/bitmap.c:240,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/gdi/bitmap.c:243,23'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/gdi/bitmap.c:247,23'
          Dst:             FreeRDPGetColor
        - Src:             'libfreerdp/gdi/bitmap.c:263,5'
          Dst:             op_xor
        - Src:             'libfreerdp/gdi/bitmap.c:267,5'
          Dst:             op_and
        - Src:             'libfreerdp/gdi/bitmap.c:271,5'
          Dst:             op_or
        - Src:             'libfreerdp/gdi/bitmap.c:275,5'
          Dst:             op_not
    - functionName:    gdi_get_brush_pointer
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/../gdi/gdi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         105
      ICount:          411
      EdgeCount:       116
      CyclomaticComplexity: 13
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - gdi_GetBrushStyle
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/gdi/../gdi/gdi.h:73,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:71,22'
          Dst:             gdi_GetBrushStyle
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:83,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:83,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:84,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:84,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:86,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:87,4'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:88,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:88,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:89,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:89,18'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:91,20'
          Dst:             FreeRDPGetBytesPerPixel
    - functionName:    gdi_GetBrushStyle
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/brush.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          109
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/brush.h:53,10'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/brush.h:53,10'
          Dst:             winpr_int_assert
    - functionName:    FreeRDPGetBytesPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBitsPerPixel
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:295,11'
          Dst:             FreeRDPGetBitsPerPixel
    - functionName:    FreeRDPGetBitsPerPixel
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FreeRDPConvertColor
      functionSourceFile: '/src/FreeRDP/include/freerdp/codec/color.h'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetColor
        - FreeRDPSplitColor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'include/freerdp/codec/color.h:277,3'
          Dst:             FreeRDPSplitColor
        - Src:             'include/freerdp/codec/color.h:278,10'
          Dst:             FreeRDPGetColor
    - functionName:    gdi_get_bitmap_pointer
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/../gdi/gdi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          241
      EdgeCount:       65
      CyclomaticComplexity: 12
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:46,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:46,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:47,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:47,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:47,52'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/../gdi/gdi.h:52,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:    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:    BitBlt_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      int
      argCount:        13
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          341
      EdgeCount:       74
      CyclomaticComplexity: 12
      functionsReached:
        - FreeRDPConvertColor
        - FreeRDPReadColor
        - FreeRDPWriteColor
        - WLog_Print_dbg_tag
        - gdi_get_bitmap_pointer
        - gdi_get_brush_pointer
        - process_rop
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/gdi/bitmap.c:323,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/gdi/bitmap.c:297,15'
          Dst:             gdi_get_bitmap_pointer
        - Src:             'libfreerdp/gdi/bitmap.c:301,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/bitmap.c:305,11'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/gdi/bitmap.c:309,22'
          Dst:             gdi_get_bitmap_pointer
        - Src:             'libfreerdp/gdi/bitmap.c:313,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/bitmap.c:317,12'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/gdi/bitmap.c:318,12'
          Dst:             FreeRDPConvertColor
        - Src:             'libfreerdp/gdi/bitmap.c:333,40'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:333,40'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:334,31'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:334,31'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:333,9'
          Dst:             gdi_get_brush_pointer
        - Src:             'libfreerdp/gdi/bitmap.c:338,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/bitmap.c:342,14'
          Dst:             FreeRDPReadColor
        - Src:             'libfreerdp/gdi/bitmap.c:351,13'
          Dst:             process_rop
        - Src:             'libfreerdp/gdi/bitmap.c:352,9'
          Dst:             FreeRDPWriteColor
    - functionName:    BitBlt_process
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 574
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         86
      ICount:          440
      EdgeCount:       108
      CyclomaticComplexity: 24
      functionsReached:
        - BitBlt_write
        - WLog_Print_dbg_tag
        - adjust_src_coordinates
        - adjust_src_dst_coordinates
        - gdi_GetBrushStyle
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/gdi/bitmap.c:477,3'
          Branch Sides:    []
        - Branch String:   'libfreerdp/gdi/bitmap.c:511,3'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/gdi/bitmap.c:495,7'
          Dst:             adjust_src_dst_coordinates
        - Src:             'libfreerdp/gdi/bitmap.c:503,8'
          Dst:             adjust_src_coordinates
        - Src:             'libfreerdp/gdi/bitmap.c:509,11'
          Dst:             gdi_GetBrushStyle
        - Src:             'libfreerdp/gdi/bitmap.c:519,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/gdi/bitmap.c:530,10'
          Dst:             BitBlt_write
        - Src:             'libfreerdp/gdi/bitmap.c:542,10'
          Dst:             BitBlt_write
        - Src:             'libfreerdp/gdi/bitmap.c:554,10'
          Dst:             BitBlt_write
        - Src:             'libfreerdp/gdi/bitmap.c:566,10'
          Dst:             BitBlt_write
    - functionName:    adjust_src_dst_coordinates
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          270
      EdgeCount:       56
      CyclomaticComplexity: 17
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    adjust_src_coordinates
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          188
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_BitBlt
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         290
      ICount:          1059
      EdgeCount:       339
      CyclomaticComplexity: 51
      functionsReached:
        - BitBlt_process
        - adjust_src_coordinates
        - adjust_src_dst_coordinates
        - freerdp_image_copy
        - gdi_ClipCoords
        - gdi_InvalidateRegion
        - gdi_rop_to_string
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:
        - Branch String:   'libfreerdp/gdi/bitmap.c:609,2'
          Branch Sides:    []
      Callsites:
        - Src:             'libfreerdp/gdi/bitmap.c:600,7'
          Dst:             gdi_ClipCoords
        - Src:             'libfreerdp/gdi/bitmap.c:615,9'
          Dst:             adjust_src_dst_coordinates
        - Src:             'libfreerdp/gdi/bitmap.c:619,9'
          Dst:             adjust_src_coordinates
        - Src:             'libfreerdp/gdi/bitmap.c:630,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:630,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:631,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:631,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:632,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:632,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:633,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:633,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:634,31'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:634,31'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:635,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:635,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:628,9'
          Dst:             freerdp_image_copy
        - Src:             'libfreerdp/gdi/bitmap.c:644,9'
          Dst:             adjust_src_dst_coordinates
        - Src:             'libfreerdp/gdi/bitmap.c:648,9'
          Dst:             adjust_src_coordinates
        - Src:             'libfreerdp/gdi/bitmap.c:656,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:656,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:657,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:657,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:658,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:658,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:659,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:659,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:660,31'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:660,31'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:661,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:661,12'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:654,9'
          Dst:             freerdp_image_copy
        - Src:             'libfreerdp/gdi/bitmap.c:668,24'
          Dst:             gdi_rop_to_string
        - Src:             'libfreerdp/gdi/bitmap.c:667,9'
          Dst:             BitBlt_process
        - Src:             'libfreerdp/gdi/bitmap.c:674,9'
          Dst:             gdi_InvalidateRegion
    - functionName:    gdi_CreateCompatibleBitmap
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          127
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - calloc
        - winpr_aligned_malloc
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/bitmap.c:151,37'
          Dst:             calloc
        - Src:             'libfreerdp/gdi/bitmap.c:158,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:161,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:164,42'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/bitmap.c:165,18'
          Dst:             winpr_aligned_malloc
        - Src:             'libfreerdp/gdi/bitmap.c:176,31'
          Dst:             FreeRDPGetBytesPerPixel
    - functionName:    gdi_CreateBitmapEx
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          222
      EdgeCount:       59
      CyclomaticComplexity: 10
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - calloc
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/bitmap.c:118,37'
          Dst:             calloc
        - Src:             'libfreerdp/gdi/bitmap.c:129,32'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/bitmap.c:131,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:131,19'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:132,20'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:132,20'
          Dst:             winpr_int_assert
    - functionName:    gdi_CreateBitmap
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gdi_CreateBitmapEx
        - winpr_aligned_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/bitmap.c:101,9'
          Dst:             gdi_CreateBitmapEx
        - Src:             'libfreerdp/gdi/bitmap.c:101,9'
          Dst:             winpr_aligned_free
    - functionName:    gdi_SetPixelBmp
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - FreeRDPWriteColor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/bitmap.c:78,51'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/bitmap.c:79,2'
          Dst:             FreeRDPWriteColor
    - functionName:    gdi_SetPixel
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gdi_SetPixelBmp
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/bitmap.c:86,9'
          Dst:             gdi_SetPixelBmp
    - functionName:    gdi_GetPointer
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          108
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/bitmap.c:62,15'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/bitmap.c:63,26'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/gdi/bitmap.c:63,26'
          Dst:             winpr_int_assert
    - functionName:    gdi_GetPixel
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/bitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          46
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FreeRDPGetBytesPerPixel
        - FreeRDPReadColor
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/bitmap.c:56,54'
          Dst:             FreeRDPGetBytesPerPixel
        - Src:             'libfreerdp/gdi/bitmap.c:57,9'
          Dst:             FreeRDPReadColor
    - functionName:    gdi_CreateHatchBrush
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/brush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 857
      functionLinenumberEnd: 867
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/brush.c:858,34'
          Dst:             calloc
    - functionName:    gdi_CreatePatternBrush
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/brush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 844
      functionLinenumberEnd: 854
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/brush.c:845,34'
          Dst:             calloc
    - functionName:    gdi_CreateSolidBrush
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/brush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 835
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/brush.c:826,34'
          Dst:             calloc
    - functionName:    gdi_rop_to_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/brush.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         260
      ICount:          1302
      EdgeCount:       518
      CyclomaticComplexity: 260
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/gdi/brush.c:39,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    gdi_ClipCoords
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/clipping.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          416
      EdgeCount:       87
      CyclomaticComplexity: 25
      functionsReached:
        - gdi_CRgnToRect
        - gdi_RectToCRgn
        - gdi_RgnToRect
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/clipping.c:97,9'
          Dst:             gdi_CRgnToRect
        - Src:             'libfreerdp/gdi/clipping.c:102,9'
          Dst:             gdi_RgnToRect
        - Src:             'libfreerdp/gdi/clipping.c:104,9'
          Dst:             gdi_CRgnToRect
        - Src:             'libfreerdp/gdi/clipping.c:122,8'
          Dst:             gdi_RgnToRect
        - Src:             'libfreerdp/gdi/clipping.c:126,7'
          Dst:             gdi_CRgnToRect
        - Src:             'libfreerdp/gdi/clipping.c:167,7'
          Dst:             gdi_RectToCRgn
    - functionName:    gdi_SetNullClipRgn
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/clipping.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - gdi_SetClipRgn
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/clipping.c:61,7'
          Dst:             gdi_SetClipRgn
    - functionName:    gdi_SetClipRgn
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/clipping.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gdi_SetRgn
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/clipping.c:37,9'
          Dst:             gdi_SetRgn
    - functionName:    gdi_GetClipRgn
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/clipping.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_DeleteObject
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/dc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          141
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_SelectObject
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/dc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          120
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_CreateCompatibleDC
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/dc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - gdi_CreateRectRgn
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/dc.c:116,25'
          Dst:             calloc
        - Src:             'libfreerdp/gdi/dc.c:121,20'
          Dst:             gdi_CreateRectRgn
    - functionName:    gdi_DeleteDC
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/dc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_CreateDC
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/dc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          118
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - gdi_CreateRectRgn
        - gdi_DeleteDC
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/dc.c:76,23'
          Dst:             calloc
        - Src:             'libfreerdp/gdi/dc.c:81,20'
          Dst:             gdi_CreateRectRgn
        - Src:             'libfreerdp/gdi/dc.c:88,30'
          Dst:             calloc
        - Src:             'libfreerdp/gdi/dc.c:91,29'
          Dst:             gdi_CreateRectRgn
        - Src:             'libfreerdp/gdi/dc.c:97,40'
          Dst:             calloc
        - Src:             'libfreerdp/gdi/dc.c:103,2'
          Dst:             gdi_DeleteDC
    - functionName:    gdi_GetDC
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/dc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - gdi_CreateRectRgn
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/gdi/dc.c:45,25'
          Dst:             calloc
        - Src:             'libfreerdp/gdi/dc.c:52,14'
          Dst:             gdi_CreateRectRgn
    - functionName:    gdi_SetTextColor
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/drawing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_SetBkMode
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/drawing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_GetBkMode
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/drawing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_SetBkColor
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/drawing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_GetBkColor
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/drawing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_SetROP2
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/drawing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gdi_GetROP2
      functionSourceFile: '/src/FreeRDP/libfreerdp/gdi/drawing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - 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:    26
      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:    77
      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:    69
      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:    18
      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:    8
      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: 118
      functionLinenumberEnd: 135
      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:130,3'
          Dst:             SetLastError
    - functionName:    EventGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - EventIsHandled
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:188,7'
          Dst:             EventIsHandled
    - functionName:    EventIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:181,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    EventCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - EventCloseHandle_
        - EventIsHandled
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:229,7'
          Dst:             EventIsHandled
        - Src:             'winpr/libwinpr/synch/event.c:232,9'
          Dst:             EventCloseHandle_
    - functionName:    EventCloseHandle_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_event_uninit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:205,2'
          Dst:             winpr_event_uninit
    - functionName:    winpr_event_uninit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:166,3'
          Dst:             close
        - Src:             'winpr/libwinpr/synch/event.c:172,3'
          Dst:             close
    - functionName:    GetEventWaitObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetEventFileDescriptor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:515,7'
          Dst:             GetEventFileDescriptor
    - functionName:    GetEventFileDescriptor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 461
      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:461,9'
          Dst:             winpr_Handle_getFd
    - functionName:    winpr_Handle_getFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 181
      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:174,7'
          Dst:             winpr_Handle_GetInfo
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 166
      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: 473
      functionLinenumberEnd: 498
      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:479,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/synch/event.c:481,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:482,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/event.c:489,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: 441
      functionLinenumberEnd: 444
      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:443,9'
          Dst:             CreateFileDescriptorEventW
    - functionName:    CreateFileDescriptorEventW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 423
      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:409,24'
          Dst:             calloc
        - Src:             'winpr/libwinpr/synch/event.c:417,3'
          Dst:             winpr_event_init_from_fd
        - Src:             'winpr/libwinpr/synch/event.c:419,3'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
    - functionName:    winpr_event_init_from_fd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      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: 138
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateFileDescriptorEventA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 433
      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:432,9'
          Dst:             CreateFileDescriptorEventW
    - functionName:    ResetEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 398
      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:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:389,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/synch/event.c:391,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:392,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/event.c:397,9'
          Dst:             winpr_event_reset
    - functionName:    winpr_event_reset
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          65
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - eventfd_read
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:151,10'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/synch/event.c:156,23'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/event.c:159,10'
          Dst:             __errno_location
    - functionName:    eventfd_read
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    OpenEventA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 363
      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:362,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    OpenEventW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 353
      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:352,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateEventExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 343
      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:340,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:343,9'
          Dst:             CreateEventA
    - functionName:    CreateEventA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          137
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - EventCloseHandle_
        - SetEvent
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Print_dbg_tag
        - calloc
        - strdup
        - winpr_event_init
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:261,37'
          Dst:             calloc
        - Src:             'winpr/libwinpr/synch/event.c:264,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:270,17'
          Dst:             strdup
        - Src:             'winpr/libwinpr/synch/event.c:277,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/synch/event.c:280,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:282,7'
          Dst:             winpr_event_init
        - Src:             'winpr/libwinpr/synch/event.c:287,8'
          Dst:             SetEvent
        - Src:             'winpr/libwinpr/synch/event.c:301,2'
          Dst:             EventCloseHandle_
    - 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_event_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - eventfd
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:100,18'
          Dst:             eventfd
    - functionName:    SetEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 381
      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:    25
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:372,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/synch/event.c:374,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:375,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/event.c:380,9'
          Dst:             winpr_event_set
    - functionName:    winpr_event_set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - eventfd_write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:133,9'
          Dst:             eventfd_write
        - Src:             'winpr/libwinpr/synch/event.c:137,22'
          Dst:             __errno_location
    - functionName:    eventfd_write
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    eventfd
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateEventExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 324
      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:320,3'
          Dst:             ConvertWCharToUtf8
        - Src:             'winpr/libwinpr/synch/event.c:321,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:324,9'
          Dst:             CreateEventW
    - functionName:    CreateEventW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 256
      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:248,10'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/synch/event.c:253,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:    170
      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:    5
      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:    9
      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:    3
      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: 147
      functionLinenumberEnd: 166
      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: 170
      functionLinenumberEnd: 181
      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:174,7'
          Dst:             winpr_Handle_GetInfo
    - 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:    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:    winpr_Handle_cleanup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 200
      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:189,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:    4
      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:    4
      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:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/wait.c:305,9'
          Dst:             WaitForSingleObjectEx
    - 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:    7
      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:    3
      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:    2
      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:    4
      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:    100
      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:    append
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 573
      functionLinenumberEnd: 575
      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:574,2'
          Dst:             winpr_str_append
    - functionName:    UnixChangeFileMode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1375
      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:1359,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: 1333
      functionLinenumberEnd: 1334
      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:1334,9'
          Dst:             MoveFileExW
    - functionName:    MoveFileExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1304
      functionLinenumberEnd: 1323
      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:1308,30'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1309,25'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1314,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1318,8'
          Dst:             winpr_MoveFileEx
    - functionName:    MoveFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1327
      functionLinenumberEnd: 1328
      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:1328,9'
          Dst:             winpr_MoveFileEx
    - functionName:    MoveFileExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1298
      functionLinenumberEnd: 1299
      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:1299,9'
          Dst:             winpr_MoveFileEx
    - functionName:    RemoveDirectoryW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1278
      functionLinenumberEnd: 1294
      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:1281,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1286,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1290,8'
          Dst:             winpr_RemoveDirectory
    - functionName:    RemoveDirectoryA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1272
      functionLinenumberEnd: 1273
      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:1273,9'
          Dst:             winpr_RemoveDirectory
    - functionName:    CreateDirectoryW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1252
      functionLinenumberEnd: 1268
      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:1255,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1260,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1264,8'
          Dst:             CreateDirectoryA
    - functionName:    CreateDirectoryA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1247
      functionLinenumberEnd: 1248
      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:1248,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: 1194
      functionLinenumberEnd: 1218
      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:1195,46'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/generic.c:1199,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1203,6'
          Dst:             FindNextFileA
        - Src:             'winpr/libwinpr/file/generic.c:1205,8'
          Dst:             ConvertFindDataAToW
        - Src:             'winpr/libwinpr/file/generic.c:1207,4'
          Dst:             SetLastError
    - functionName:    FindNextFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1129
      functionLinenumberEnd: 1191
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          192
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - FilePatternMatchA
        - FindDataFromStat
        - SetLastError
        - __errno_location
        - is_valid_file_search_handle
        - map_posix_err
        - readdir64
        - stat64
        - strlen
        - strncpy
        - strnlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1136,7'
          Dst:             is_valid_file_search_handle
        - Src:             'winpr/libwinpr/file/generic.c:1142,20'
          Dst:             readdir64
        - Src:             'winpr/libwinpr/file/generic.c:1144,7'
          Dst:             FilePatternMatchA
        - Src:             'winpr/libwinpr/file/generic.c:1148,4'
          Dst:             strncpy
        - Src:             'winpr/libwinpr/file/generic.c:1149,27'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/file/generic.c:1150,21'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/generic.c:1155,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1168,8'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/generic.c:1171,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:1171,18'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/generic.c:1171,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1172,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:1183,14'
          Dst:             FindDataFromStat
        - Src:             'winpr/libwinpr/file/generic.c:1189,2'
          Dst:             SetLastError
    - functionName:    ConvertFindDataAToW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1041
      functionLinenumberEnd: 1062
      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:1054,6'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/file/generic.c:1058,9'
          Dst:             ConvertUtf8NToWChar
    - functionName:    is_valid_file_search_handle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 943
      functionLinenumberEnd: 952
      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:949,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:    3
      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:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FindDataFromStat
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 982
      functionLinenumberEnd: 1001
      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:984,37'
          Dst:             FileAttributesFromStat
    - functionName:    FileAttributesFromStat
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 977
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          124
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - strlen
        - strrchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:964,24'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/file/generic.c:968,26'
          Dst:             strlen
    - functionName:    FindFirstFileExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1123
      functionLinenumberEnd: 1125
      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:1124,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:    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:    FindFirstFileExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1112
      functionLinenumberEnd: 1114
      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:1113,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FindFirstFileW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1065
      functionLinenumberEnd: 1104
      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:1071,46'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/generic.c:1075,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1079,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1082,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1087,6'
          Dst:             FindFirstFileA
        - Src:             'winpr/libwinpr/file/generic.c:1092,8'
          Dst:             ConvertFindDataAToW
        - Src:             'winpr/libwinpr/file/generic.c:1094,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1095,4'
          Dst:             FindClose
    - functionName:    FindFirstFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1005
      functionLinenumberEnd: 1037
      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:1008,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1017,22'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/generic.c:1018,19'
          Dst:             PathGetSeparatorA
        - Src:             'winpr/libwinpr/file/generic.c:1019,20'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/file/generic.c:1022,15'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/generic.c:1026,16'
          Dst:             file_search_new
        - Src:             'winpr/libwinpr/file/generic.c:1031,6'
          Dst:             FindNextFileA
        - Src:             'winpr/libwinpr/file/generic.c:1035,2'
          Dst:             FindClose
    - functionName:    FindClose
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1221
      functionLinenumberEnd: 1243
      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:1230,7'
          Dst:             is_valid_file_search_handle
        - Src:             'winpr/libwinpr/file/generic.c:1238,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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    file_search_new
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 881
      functionLinenumberEnd: 940
      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:882,55'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/generic.c:888,24'
          Dst:             strndup
        - Src:             'winpr/libwinpr/file/generic.c:889,27'
          Dst:             strndup
        - Src:             'winpr/libwinpr/file/generic.c:893,22'
          Dst:             opendir
        - Src:             'winpr/libwinpr/file/generic.c:901,7'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/generic.c:905,25'
          Dst:             opendir
        - Src:             'winpr/libwinpr/file/generic.c:910,28'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/generic.c:911,31'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/generic.c:914,7'
          Dst:             closedir
        - Src:             'winpr/libwinpr/file/generic.c:923,36'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:923,22'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/generic.c:924,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:924,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/generic.c:924,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:924,4'
          Dst:             Win32ErrorCode2Tag
        - Src:             'winpr/libwinpr/file/generic.c:924,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/generic.c:927,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:937,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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SetFileTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 849
      functionLinenumberEnd: 866
      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:856,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:864,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 166
      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: 827
      functionLinenumberEnd: 845
      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:834,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:843,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    UnlockFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 805
      functionLinenumberEnd: 823
      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:812,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:821,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    LockFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 783
      functionLinenumberEnd: 801
      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:790,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:799,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    LockFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 761
      functionLinenumberEnd: 779
      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:768,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:777,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetFilePointerEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 739
      functionLinenumberEnd: 757
      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:746,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:755,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetFilePointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 717
      functionLinenumberEnd: 735
      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:724,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:733,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetFileSize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 696
      functionLinenumberEnd: 713
      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:703,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:711,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetEndOfFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 676
      functionLinenumberEnd: 693
      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:683,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:691,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetFileAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 657
      functionLinenumberEnd: 673
      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:663,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:666,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:670,8'
          Dst:             SetFileAttributesA
    - functionName:    SetFileAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 618
      functionLinenumberEnd: 654
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          176
      EdgeCount:       46
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Print_dbg_tag
        - close
        - fchmod
        - flagsToStr
        - fstat64
        - open64
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:625,23'
          Dst:             flagsToStr
        - Src:             'winpr/libwinpr/file/generic.c:626,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/generic.c:629,11'
          Dst:             open64
        - Src:             'winpr/libwinpr/file/generic.c:634,6'
          Dst:             fstat64
        - Src:             'winpr/libwinpr/file/generic.c:639,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/generic.c:639,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/generic.c:646,6'
          Dst:             fchmod
        - Src:             'winpr/libwinpr/file/generic.c:651,2'
          Dst:             close
    - functionName:    flagsToStr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 614
      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:582,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:584,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:586,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:588,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:590,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:592,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:594,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:596,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:598,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:600,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:602,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:604,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:606,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:608,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:610,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:612,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/file/generic.c:613,2'
          Dst:             winpr_str_append
    - functionName:    open64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    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:    GetFileInformationByHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 570
      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:560,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:568,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetFileAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 550
      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:540,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:543,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:547,8'
          Dst:             GetFileAttributesA
    - functionName:    GetFileAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 533
      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:529,6'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/generic.c:532,9'
          Dst:             FileAttributesFromStat
    - functionName:    GetFileAttributesExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 509
      functionLinenumberEnd: 524
      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:513,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:517,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:521,8'
          Dst:             GetFileAttributesExA
    - functionName:    GetFileAttributesExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 505
      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:491,6'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/generic.c:495,7'
          Dst:             FindDataFromStat
    - functionName:    FlushFileBuffers
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 463
      functionLinenumberEnd: 480
      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:470,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:478,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WriteFileGather
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 460
      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:449,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:458,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WriteFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 438
      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:427,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:436,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WriteFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 416
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:405,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:414,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ReadFileScatter
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 394
      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:383,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:392,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ReadFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 372
      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:361,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:370,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ReadFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 350
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:339,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:348,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    DeleteFileW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 320
      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:316,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:317,12'
          Dst:             winpr_DeleteFile
    - functionName:    DeleteFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 308
      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:308,9'
          Dst:             winpr_DeleteFile
    - functionName:    CreateFileW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 303
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:290,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:294,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:298,8'
          Dst:             winpr_CreateFile
    - functionName:    winpr_CreateFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 281
      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:251,6'
          Dst:             pthread_once
        - Src:             'winpr/libwinpr/file/generic.c:251,6'
          Dst:             HandleCreatorsInit
        - Src:             'winpr/libwinpr/file/generic.c:253,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:259,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:263,2'
          Dst:             ArrayList_Lock
        - Src:             'winpr/libwinpr/file/generic.c:265,26'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/file/generic.c:267,35'
          Dst:             ArrayList_GetItem
        - Src:             'winpr/libwinpr/file/generic.c:274,4'
          Dst:             ArrayList_Unlock
        - Src:             'winpr/libwinpr/file/generic.c:279,2'
          Dst:             ArrayList_Unlock
    - functionName:    HandleCreatorsInit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 205
      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:191,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/generic.c:192,19'
          Dst:             ArrayList_New
        - Src:             'winpr/libwinpr/file/generic.c:200,35'
          Dst:             GetNamedPipeClientHandleCreator
        - Src:             'winpr/libwinpr/file/generic.c:200,2'
          Dst:             ArrayList_Append
        - Src:             'winpr/libwinpr/file/generic.c:201,33'
          Dst:             GetCommHandleCreator
        - Src:             'winpr/libwinpr/file/generic.c:203,3'
          Dst:             ArrayList_Append
        - Src:             'winpr/libwinpr/file/generic.c:204,35'
          Dst:             GetFileHandleCreator
        - Src:             'winpr/libwinpr/file/generic.c:204,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: 238
      functionLinenumberEnd: 240
      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:239,9'
          Dst:             winpr_CreateFile
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 135
      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:130,3'
          Dst:             SetLastError
    - functionName:    NamedPipeClientGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - NamedPipeClientIsHandled
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:86,7'
          Dst:             NamedPipeClientIsHandled
    - functionName:    NamedPipeClientIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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: 80
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          100
      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:69,3'
          Dst:             close
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          21
      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: 273
      functionLinenumberEnd: 286
      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:278,7'
          Dst:             NamedPipeClientIsHandled
    - functionName:    GetNamedPipeUnixDomainSocketFilePathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 269
      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:264,15'
          Dst:             GetNamedPipeUnixDomainSocketBaseFilePathA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:265,15'
          Dst:             GetNamedPipeNameWithoutPrefixA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:266,15'
          Dst:             GetCombinedPath
    - functionName:    GetNamedPipeUnixDomainSocketBaseFilePathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 257
      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:249,15'
          Dst:             GetKnownPath
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:254,15'
          Dst:             GetCombinedPath
    - functionName:    GetNamedPipeNameWithoutPrefixA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 243
      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:238,7'
          Dst:             IsNamedPipeFileNameA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:241,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:241,15'
          Dst:             _strdup
    - functionName:    IsNamedPipeFileNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 228
      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:228,10'
          Dst:             strncmp
    - functionName:    NamedPipeClientCreateFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          247
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - GetNamedPipeNameWithoutPrefixA
        - GetNamedPipeUnixDomainSocketFilePathA
        - IsNamedPipeFileNameA
        - SetLastError
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Print_dbg_tag
        - _strdup
        - calloc
        - close
        - connect
        - snprintf
        - socket
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:131,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:132,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:139,7'
          Dst:             IsNamedPipeFileNameA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:142,52'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:146,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:151,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:152,21'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:156,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:167,27'
          Dst:             GetNamedPipeNameWithoutPrefixA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:172,27'
          Dst:             GetNamedPipeUnixDomainSocketFilePathA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:177,25'
          Dst:             socket
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:184,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:185,11'
          Dst:             connect
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:194,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:203,4'
          Dst:             close
    - functionName:    GetNamedPipeClientHandleCreator
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 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:    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:    GetStdHandle_Uninit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1051
      functionLinenumberEnd: 1053
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FileCloseHandleInt
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1052,2'
          Dst:             FileCloseHandleInt
    - functionName:    FileCloseHandleInt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          91
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - FileIsHandled
        - fclose
        - fileno
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:82,7'
          Dst:             FileIsHandled
        - Src:             'winpr/libwinpr/file/file.c:96,7'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:98,10'
          Dst:             fclose
    - functionName:    FileIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:65,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    fileno
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 135
      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:130,3'
          Dst:             SetLastError
    - functionName:    FileTimeToUS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 588
      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: 593
      functionLinenumberEnd: 599
      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:594,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/file.c:595,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:    _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:    FileGetFileInformationByHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 434
      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:389,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:389,6'
          Dst:             fstat64
        - Src:             'winpr/libwinpr/file/file.c:390,10'
          Dst:             log_error_
        - Src:             'winpr/libwinpr/file/file.c:400,12'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/file/file.c:405,26'
          Dst:             strlen
    - functionName:    log_error_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 136
      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:119,2'
          Dst:             winpr_int_assert
        - 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:127,9'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:129,6'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:132,59'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:132,44'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:133,25'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:131,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/file/file.c:135,29'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:135,15'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:135,2'
          Dst:             SetLastError
    - functionName:    map_posix_err
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 794
      functionLinenumberEnd: 852
      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:    14
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:799,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:845,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:845,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: 604
      functionLinenumberEnd: 630
      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:613,14'
          Dst:             filetimeToTimespec
        - Src:             'winpr/libwinpr/file/file.c:616,14'
          Dst:             filetimeToTimespec
        - Src:             'winpr/libwinpr/file/file.c:619,26'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:619,17'
          Dst:             futimens
        - Src:             'winpr/libwinpr/file/file.c:623,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:623,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:623,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:623,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:625,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:625,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:625,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: 545
      functionLinenumberEnd: 580
      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:553,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:554,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:563,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:575,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:575,6'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:576,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: 510
      functionLinenumberEnd: 539
      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:521,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:534,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:534,6'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:535,10'
          Dst:             log_error_
    - functionName:    FileLockFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 504
      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:451,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:452,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:461,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:497,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:497,6'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:498,10'
          Dst:             log_error_
    - functionName:    FileSetFilePointerEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 232
      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:210,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:225,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/file/file.c:226,10'
          Dst:             log_error_
        - Src:             'winpr/libwinpr/file/file.c:229,32'
          Dst:             _ftelli64
    - functionName:    FileSetFilePointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 199
      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:177,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:192,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/file/file.c:194,9'
          Dst:             log_error_
        - Src:             'winpr/libwinpr/file/file.c:198,16'
          Dst:             _ftelli64
    - functionName:    FileSetEndOfFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 154
      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:146,21'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/file/file.c:150,16'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:150,6'
          Dst:             ftruncate64
        - Src:             'winpr/libwinpr/file/file.c:151,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: 351
      functionLinenumberEnd: 374
      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:356,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:363,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:367,6'
          Dst:             fflush
        - Src:             'winpr/libwinpr/file/file.c:369,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:369,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:369,3'
          Dst:             SetLastError
    - functionName:    FileGetFileSize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 348
      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:316,8'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/file/file.c:320,9'
          Dst:             log_error_
        - Src:             'winpr/libwinpr/file/file.c:324,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/file/file.c:326,9'
          Dst:             log_error_
        - Src:             'winpr/libwinpr/file/file.c:330,9'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/file/file.c:334,9'
          Dst:             log_error_
        - Src:             'winpr/libwinpr/file/file.c:338,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/file/file.c:340,9'
          Dst:             log_error_
    - functionName:    FileWrite
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 303
      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:283,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:284,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:293,2'
          Dst:             clearerr
        - Src:             'winpr/libwinpr/file/file.c:294,14'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/file/file.c:295,24'
          Dst:             ferror
        - Src:             'winpr/libwinpr/file/file.c:297,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:297,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:297,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:    FileRead
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 273
      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:259,3'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:243,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:244,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:252,2'
          Dst:             clearerr
        - Src:             'winpr/libwinpr/file/file.c:253,14'
          Dst:             fread
        - Src:             'winpr/libwinpr/file/file.c:255,24'
          Dst:             ferror
        - Src:             'winpr/libwinpr/file/file.c:259,11'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:262,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:265,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:265,18'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:265,5'
          Dst:             SetLastError
    - functionName:    FileGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - FileIsHandled
        - fileno
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:72,7'
          Dst:             FileIsHandled
        - Src:             'winpr/libwinpr/file/file.c:75,9'
          Dst:             fileno
    - functionName:    FileCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FileCloseHandleInt
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:110,9'
          Dst:             FileCloseHandleInt
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FileGetMode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 767
      functionLinenumberEnd: 791
      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:770,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    FileCreateFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 859
      functionLinenumberEnd: 1016
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          454
      EdgeCount:       89
      CyclomaticComplexity: 23
      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
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:862,21'
          Dst:             FileGetMode
        - Src:             'winpr/libwinpr/file/file.c:873,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:874,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:878,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/file.c:881,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:885,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/file/file.c:888,22'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/file.c:891,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:907,8'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/file.c:909,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:916,8'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/file/file.c:919,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:919,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:919,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:925,8'
          Dst:             freopen64
        - Src:             'winpr/libwinpr/file/file.c:929,7'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/file.c:931,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:931,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:931,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:942,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:950,8'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/file/file.c:957,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:957,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:957,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:963,8'
          Dst:             setvbuf
        - Src:             'winpr/libwinpr/file/file.c:986,13'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:986,7'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:992,10'
          Dst:             log_error_
        - Src:             'winpr/libwinpr/file/file.c:995,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:995,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:995,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:996,4'
          Dst:             FileCloseHandle
        - Src:             'winpr/libwinpr/file/file.c:1003,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:1003,6'
          Dst:             fstat64
        - Src:             'winpr/libwinpr/file/file.c:1005,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/file.c:1005,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/file.c:1006,14'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:1006,7'
          Dst:             fchmod
        - Src:             'winpr/libwinpr/file/file.c:1008,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:1008,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:1008,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:1009,4'
          Dst:             FileCloseHandle
        - Src:             'winpr/libwinpr/file/file.c:1014,2'
          Dst:             SetLastError
    - functionName:    winpr_fopen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1521
      functionLinenumberEnd: 1523
      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:    31
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1523,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: 1019
      functionLinenumberEnd: 1020
      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: 1568
      functionLinenumberEnd: 1580
      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: 1551
      functionLinenumberEnd: 1565
      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:1555,12'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/file.c:1560,19'
          Dst:             GetLogicalDriveStringsA
        - Src:             'winpr/libwinpr/file/file.c:1562,3'
          Dst:             ConvertMszUtf8NToWChar
    - functionName:    GetFileHandleForFileDescriptor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1485
      functionLinenumberEnd: 1518
      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:1494,6'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/file/file.c:1494,34'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:1497,10'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/file/file.c:1502,8'
          Dst:             fdopen
        - Src:             'winpr/libwinpr/file/file.c:1504,8'
          Dst:             fdopen
        - Src:             'winpr/libwinpr/file/file.c:1509,8'
          Dst:             setvbuf
        - Src:             'winpr/libwinpr/file/file.c:1512,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: 1031
      functionLinenumberEnd: 1048
      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:1035,51'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:1035,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/file/file.c:1036,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/file.c:1039,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:1044,22'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/file.c:1046,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
    - functionName:    ValidFileNameComponent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1140
      functionLinenumberEnd: 1211
      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: 1114
      functionLinenumberEnd: 1129
      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:1119,23'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/file.c:1122,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:1125,8'
          Dst:             GetDiskFreeSpaceA
    - functionName:    GetDiskFreeSpaceA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1095
      functionLinenumberEnd: 1108
      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:1103,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: 1089
      functionLinenumberEnd: 1090
      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: 1083
      functionLinenumberEnd: 1084
      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: 1056
      functionLinenumberEnd: 1080
      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:1059,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1074,20'
          Dst:             FileHandle_New
    - functionName:    GetFileHandleCreator
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1026
      functionLinenumberEnd: 1027
      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: 1500
      functionLinenumberEnd: 1796
      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:1501,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    CommGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommIsHandled
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:146,7'
          Dst:             CommIsHandled
    - functionName:    CommIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1435
      functionLinenumberEnd: 1440
      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:1436,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1439,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    CommInitialized
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInit
        - SetLastError
        - pthread_once
      functionUses:    29
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:190,6'
          Dst:             pthread_once
        - Src:             'winpr/libwinpr/comm/comm.c:190,6'
          Dst:             CommInit
        - Src:             'winpr/libwinpr/comm/comm.c:192,3'
          Dst:             SetLastError
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 135
      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:130,3'
          Dst:             SetLastError
    - functionName:    CommInit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         25
      ICount:          72
      EdgeCount:       27
      CyclomaticComplexity: 4
      functionsReached:
        - InitializeCriticalSectionEx
        - WLog_Get
        - calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:166,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:167,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:168,32'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:173,7'
          Dst:             InitializeCriticalSectionEx
        - Src:             'winpr/libwinpr/comm/comm.c:180,9'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/comm/comm.c:181,2'
          Dst:             winpr_int_assert
    - functionName:    CommSerialEvFlagString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1857
      functionLinenumberEnd: 1893
      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:1858,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    CommSerialEvString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1896
      functionLinenumberEnd: 1919
      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:1903,2'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/comm/comm.c:1911,21'
          Dst:             CommSerialEvFlagString
        - Src:             'winpr/libwinpr/comm/comm.c:1911,4'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/comm/comm.c:1917,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/comm/comm.c:1918,2'
          Dst:             winpr_str_append
    - functionName:    CommStatusErrorEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1800
      functionLinenumberEnd: 1820
      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:1801,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:1805,20'
          Dst:             CommIoCtlToStr
        - Src:             'winpr/libwinpr/comm/comm.c:1807,6'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1809,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/comm/comm.c:1812,81'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm.c:1813,41'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm.c:1813,26'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm.c:1811,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/comm/comm.c:1818,3'
          Dst:             SetLastError
    - functionName:    CommIoCtl_int
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1825
      functionLinenumberEnd: 1832
      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:1826,6'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm.c:1828,8'
          Dst:             CommStatusErrorEx
    - functionName:    ioctl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CommCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1456
      functionLinenumberEnd: 1483
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          131
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - CommIsHandled
        - DeleteCriticalSection
        - close
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1459,7'
          Dst:             CommIsHandled
        - Src:             'winpr/libwinpr/comm/comm.c:1462,2'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1463,2'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1464,2'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1467,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1470,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1473,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1476,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1479,3'
          Dst:             close
    - functionName:    CommUpdateIOCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1835
      functionLinenumberEnd: 1854
      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:1837,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:1843,18'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm.c:1848,9'
          Dst:             CommStatusErrorEx
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          21
      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: 147
      functionLinenumberEnd: 166
      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: 1206
      functionLinenumberEnd: 1222
      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:1211,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1214,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/comm/comm.c:1216,3'
          Dst:             CommLog_PrintEx
    - functionName:    CommLog_PrintEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 212
      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:203,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:206,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/comm/comm.c:210,2'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    QueryCommDevice
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1126
      functionLinenumberEnd: 1182
      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:1128,2'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1130,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1135,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1141,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1145,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1152,8'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/comm/comm.c:1164,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1168,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1172,22'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/comm/comm.c:1175,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1179,2'
          Dst:             strncpy
    - functionName:    DefineCommDevice
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1107
      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:1033,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1036,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1040,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1044,21'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/comm/comm.c:1048,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1052,21'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/comm/comm.c:1056,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1066,9'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/comm/comm.c:1079,37'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:1083,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1095,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1100,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1105,2'
          Dst:             LeaveCriticalSection
    - functionName:    WaitCommEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1003
      functionLinenumberEnd: 1017
      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:1006,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1014,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1015,2'
          Dst:             SetLastError
    - functionName:    TransmitCommChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 985
      functionLinenumberEnd: 999
      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:988,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:996,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:997,2'
          Dst:             SetLastError
    - functionName:    EscapeCommFunction
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 968
      functionLinenumberEnd: 982
      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:971,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:979,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:980,2'
          Dst:             SetLastError
    - functionName:    SetupComm
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 946
      functionLinenumberEnd: 965
      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:951,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:957,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:960,3'
          Dst:             CommLog_PrintEx
    - functionName:    CommIsHandleValid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1443
      functionLinenumberEnd: 1453
      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:1445,7'
          Dst:             CommIsHandled
        - Src:             'winpr/libwinpr/comm/comm.c:1449,3'
          Dst:             SetLastError
    - functionName:    PurgeComm
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 928
      functionLinenumberEnd: 943
      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:932,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:935,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:938,3'
          Dst:             CommLog_PrintEx
    - functionName:    ClearCommError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 911
      functionLinenumberEnd: 925
      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:914,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:922,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:923,2'
          Dst:             SetLastError
    - functionName:    ClearCommBreak
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 893
      functionLinenumberEnd: 907
      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:896,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:904,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:905,2'
          Dst:             SetLastError
    - functionName:    SetCommBreak
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 876
      functionLinenumberEnd: 890
      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:879,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:887,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:888,2'
          Dst:             SetLastError
    - functionName:    SetDefaultCommConfigW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 865
      functionLinenumberEnd: 873
      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:866,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:870,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:871,2'
          Dst:             SetLastError
    - functionName:    SetDefaultCommConfigA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 853
      functionLinenumberEnd: 861
      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:854,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:858,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:859,2'
          Dst:             SetLastError
    - functionName:    GetDefaultCommConfigW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 841
      functionLinenumberEnd: 849
      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:842,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:846,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:847,2'
          Dst:             SetLastError
    - functionName:    GetDefaultCommConfigA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 829
      functionLinenumberEnd: 837
      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:830,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:834,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:835,2'
          Dst:             SetLastError
    - functionName:    SetCommTimeouts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 825
      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:812,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:817,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:820,3'
          Dst:             CommLog_PrintEx
    - functionName:    GetCommTimeouts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 784
      functionLinenumberEnd: 801
      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:788,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:793,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:796,3'
          Dst:             CommLog_PrintEx
    - functionName:    SetCommState
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 777
      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:639,2'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/comm/comm.c:689,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:570,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:575,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:585,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:588,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:594,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:598,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:608,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:611,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:620,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:623,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:654,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:692,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:709,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:724,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:727,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:733,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm.c:736,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:747,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:770,6'
          Dst:             comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm.c:772,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: 404
      functionLinenumberEnd: 549
      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:410,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:415,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:421,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:425,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm.c:427,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:431,21'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:435,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:443,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:446,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:455,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:461,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:464,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:509,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:509,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:510,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:510,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:515,8'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:518,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:530,8'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:533,4'
          Dst:             CommLog_PrintEx
    - functionName:    GetCommProperties
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 392
      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:381,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:384,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:387,3'
          Dst:             CommLog_PrintEx
    - functionName:    GetCommModemStatus
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 369
      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:358,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:366,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:367,2'
          Dst:             SetLastError
    - functionName:    SetCommMask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 352
      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:341,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:349,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:350,2'
          Dst:             SetLastError
    - functionName:    GetCommMask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 335
      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:324,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:332,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:333,2'
          Dst:             SetLastError
    - functionName:    SetCommConfig
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 318
      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:307,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:315,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:316,2'
          Dst:             SetLastError
    - functionName:    GetCommConfig
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 300
      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:289,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:297,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:298,2'
          Dst:             SetLastError
    - functionName:    CommConfigDialogW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 282
      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:275,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:279,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:280,2'
          Dst:             SetLastError
    - functionName:    CommConfigDialogA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 270
      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:263,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:267,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:268,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBAndTimeoutsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 258
      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:251,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:255,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:256,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBAndTimeoutsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 246
      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:239,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:243,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:244,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 234
      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:227,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:231,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:232,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 223
      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:216,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:220,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:221,2'
          Dst:             SetLastError
    - functionName:    CommCreateFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1257
      functionLinenumberEnd: 1432
      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_ioctl_tcsetattr
        - eventfd
        - open64
        - stat64
        - tcgetattr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1263,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1268,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1274,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1283,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1289,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1293,6'
          Dst:             QueryCommDevice
        - Src:             'winpr/libwinpr/comm/comm.c:1299,6'
          Dst:             stat64
        - Src:             'winpr/libwinpr/comm/comm.c:1301,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1302,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1308,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1309,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1315,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1321,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1325,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:1329,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1333,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/comm/comm.c:1336,14'
          Dst:             open64
        - Src:             'winpr/libwinpr/comm/comm.c:1340,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1341,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1345,19'
          Dst:             open64
        - Src:             'winpr/libwinpr/comm/comm.c:1349,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1350,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1355,25'
          Dst:             eventfd
        - Src:             'winpr/libwinpr/comm/comm.c:1361,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1362,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1366,2'
          Dst:             InitializeCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1367,20'
          Dst:             open64
        - Src:             'winpr/libwinpr/comm/comm.c:1371,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1372,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1377,26'
          Dst:             eventfd
        - Src:             'winpr/libwinpr/comm/comm.c:1383,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1384,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1388,2'
          Dst:             InitializeCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1391,2'
          Dst:             InitializeCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1393,8'
          Dst:             CommUpdateIOCount
        - Src:             'winpr/libwinpr/comm/comm.c:1400,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm.c:1402,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1420,6'
          Dst:             comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm.c:1422,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1429,53'
          Dst:             CloseHandle
    - functionName:    IsCommDevice
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1188
      functionLinenumberEnd: 1200
      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:1191,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1194,6'
          Dst:             QueryCommDevice
    - functionName:    GetCommHandleCreator
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _comm_serial_ioctl_name
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      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:    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: 118
      functionLinenumberEnd: 135
      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:130,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:    19
      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: 86
      functionLinenumberEnd: 93
      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:89,7'
          Dst:             PipeIsHandled
    - functionName:    PipeIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:82,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    PipeCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - PipeIsHandled
        - close
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:99,7'
          Dst:             PipeIsHandled
        - Src:             'winpr/libwinpr/pipe/pipe.c:104,3'
          Dst:             close
    - functionName:    GetNamedPipeClientComputerNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 934
      functionLinenumberEnd: 937
      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:935,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:936,2'
          Dst:             SetLastError
    - functionName:    GetNamedPipeClientComputerNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 925
      functionLinenumberEnd: 928
      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:926,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:927,2'
          Dst:             SetLastError
    - functionName:    ImpersonateNamedPipeClient
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 916
      functionLinenumberEnd: 919
      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:917,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:918,2'
          Dst:             SetLastError
    - functionName:    SetNamedPipeHandleState
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 876
      functionLinenumberEnd: 913
      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:890,11'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/pipe/pipe.c:900,7'
          Dst:             fcntl64
    - functionName:    WaitNamedPipeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 866
      functionLinenumberEnd: 869
      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:867,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:868,2'
          Dst:             SetLastError
    - functionName:    WaitNamedPipeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 828
      functionLinenumberEnd: 863
      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:837,15'
          Dst:             GetNamedPipeUnixDomainSocketFilePathA
        - Src:             'winpr/libwinpr/pipe/pipe.c:849,10'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/pipe/pipe.c:851,3'
          Dst:             Sleep
    - functionName:    TransactNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 821
      functionLinenumberEnd: 824
      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:822,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:823,2'
          Dst:             SetLastError
    - functionName:    PeekNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 810
      functionLinenumberEnd: 813
      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:811,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:812,2'
          Dst:             SetLastError
    - functionName:    DisconnectNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 793
      functionLinenumberEnd: 803
      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:799,3'
          Dst:             close
    - functionName:    ConnectNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 790
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          121
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - SetEvent
        - SetLastError
        - WLog_Print_dbg_tag
        - accept
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:748,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:749,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:762,12'
          Dst:             accept
        - Src:             'winpr/libwinpr/pipe/pipe.c:766,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:786,9'
          Dst:             SetEvent
    - functionName:    accept
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateNamedPipeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 737
      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:735,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:736,2'
          Dst:             SetLastError
    - functionName:    NamedPipeCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          100
      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:241,3'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:244,3'
          Dst:             close
    - functionName:    winpr_unref_named_pipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 557
      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:526,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pipe/pipe.c:527,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pipe/pipe.c:529,2'
          Dst:             ArrayList_Lock
        - Src:             'winpr/libwinpr/pipe/pipe.c:531,33'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/pipe/pipe.c:534,36'
          Dst:             ArrayList_GetItem
        - Src:             'winpr/libwinpr/pipe/pipe.c:535,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pipe/pipe.c:537,8'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/pipe/pipe.c:539,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pipe/pipe.c:540,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pipe/pipe.c:546,5'
          Dst:             ArrayList_Remove
        - Src:             'winpr/libwinpr/pipe/pipe.c:547,5'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:556,2'
          Dst:             ArrayList_Unlock
    - functionName:    InitWinPRPipeModule
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 457
      functionLinenumberEnd: 463
      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:461,29'
          Dst:             ArrayList_New
    - functionName:    CreateNamedPipeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          426
      EdgeCount:       79
      CyclomaticComplexity: 24
      functionsReached:
        - ArrayList_Append
        - ArrayList_Count
        - ArrayList_GetItem
        - ArrayList_Lock
        - ArrayList_Unlock
        - CreateDirectoryA
        - GetNamedPipeNameWithoutPrefixA
        - GetNamedPipeUnixDomainSocketBaseFilePathA
        - GetNamedPipeUnixDomainSocketFilePathA
        - InitWinPRPipeModule
        - NamedPipeCloseHandle
        - SetLastError
        - UnixChangeFileMode
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Print_dbg_tag
        - __errno_location
        - _strdup
        - bind
        - calloc
        - close
        - dup
        - listen
        - snprintf
        - socket
        - strcmp
        - winpr_DeleteFile
        - winpr_PathFileExists
        - winpr_strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:572,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:573,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:580,7'
          Dst:             InitWinPRPipeModule
        - Src:             'winpr/libwinpr/pipe/pipe.c:583,34'
          Dst:             calloc
        - Src:             'winpr/libwinpr/pipe/pipe.c:588,2'
          Dst:             ArrayList_Lock
        - Src:             'winpr/libwinpr/pipe/pipe.c:589,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/pipe/pipe.c:593,27'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/pipe/pipe.c:596,33'
          Dst:             GetNamedPipeNameWithoutPrefixA
        - Src:             'winpr/libwinpr/pipe/pipe.c:599,33'
          Dst:             GetNamedPipeUnixDomainSocketFilePathA
        - Src:             'winpr/libwinpr/pipe/pipe.c:613,33'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/pipe/pipe.c:616,36'
          Dst:             ArrayList_GetItem
        - Src:             'winpr/libwinpr/pipe/pipe.c:618,8'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/pipe/pipe.c:632,22'
          Dst:             GetNamedPipeUnixDomainSocketBaseFilePathA
        - Src:             'winpr/libwinpr/pipe/pipe.c:635,8'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/pipe/pipe.c:637,9'
          Dst:             CreateDirectoryA
        - Src:             'winpr/libwinpr/pipe/pipe.c:643,4'
          Dst:             UnixChangeFileMode
        - Src:             'winpr/libwinpr/pipe/pipe.c:648,7'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/pipe/pipe.c:649,4'
          Dst:             winpr_DeleteFile
        - Src:             'winpr/libwinpr/pipe/pipe.c:651,19'
          Dst:             socket
        - Src:             'winpr/libwinpr/pipe/pipe.c:654,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:654,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/pipe/pipe.c:654,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:660,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/pipe/pipe.c:662,7'
          Dst:             bind
        - Src:             'winpr/libwinpr/pipe/pipe.c:665,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:665,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/pipe/pipe.c:665,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:670,7'
          Dst:             listen
        - Src:             'winpr/libwinpr/pipe/pipe.c:673,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:673,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/pipe/pipe.c:673,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:678,3'
          Dst:             UnixChangeFileMode
        - Src:             'winpr/libwinpr/pipe/pipe.c:683,28'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/pipe/pipe.c:692,8'
          Dst:             ArrayList_Append
        - Src:             'winpr/libwinpr/pipe/pipe.c:703,25'
          Dst:             dup
        - Src:             'winpr/libwinpr/pipe/pipe.c:712,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:716,2'
          Dst:             ArrayList_Unlock
        - Src:             'winpr/libwinpr/pipe/pipe.c:719,2'
          Dst:             NamedPipeCloseHandle
        - Src:             'winpr/libwinpr/pipe/pipe.c:722,3'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:724,2'
          Dst:             ArrayList_Unlock
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bind
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    listen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dup
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    NamedPipeRead
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 337
      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:277,4'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:265,16'
          Dst:             read
        - Src:             'winpr/libwinpr/pipe/pipe.c:266,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:270,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:277,12'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:280,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:284,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:297,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:298,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:332,9'
          Dst:             SetEvent
    - functionName:    NamedPipeWrite
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 432
      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:369,4'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:348,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:349,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:362,16'
          Dst:             write
        - Src:             'winpr/libwinpr/pipe/pipe.c:363,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:369,12'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:427,9'
          Dst:             SetEvent
    - functionName:    CreatePipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          160
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Print_dbg_tag
        - calloc
        - close
        - pipe
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:479,6'
          Dst:             pipe
        - Src:             'winpr/libwinpr/pipe/pipe.c:482,4'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:484,4'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:486,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:490,27'
          Dst:             calloc
        - Src:             'winpr/libwinpr/pipe/pipe.c:491,28'
          Dst:             calloc
        - Src:             'winpr/libwinpr/pipe/pipe.c:496,4'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:498,4'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:506,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/pipe/pipe.c:509,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
    - functionName:    pipe
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PopEntryList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 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:    3
      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:    6
      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:    25
      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:    2
      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:    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:    1
      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:    3
      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:    2
      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_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:    8
      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:    23
      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:    20
      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:    64
      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:    23
      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:    27
      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:    7
      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_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:    1
      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:    5
      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:    1
      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:    5
      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:    9
      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:    9
      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:    19
      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:    8
      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:    10
      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:    2
      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:    17
      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:    1
      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:    3
      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:    11
      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:    9
      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:    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:    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:    1
      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:    13
      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:    12
      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:    12
      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:    2
      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:    11
      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:    11
      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:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_GetConfigFilePathV
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1227
      functionLinenumberEnd: 1232
      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:1230,14'
          Dst:             winpr_GetConfigFilePathVA
    - functionName:    winpr_GetConfigFilePathVA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1191
      functionLinenumberEnd: 1217
      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:1193,23'
          Dst:             winpr_getApplicationDetailsVendor
        - Src:             'winpr/libwinpr/path/path.c:1194,24'
          Dst:             winpr_getApplicationDetailsProduct
        - Src:             'winpr/libwinpr/path/path.c:1195,26'
          Dst:             winpr_getApplicationDetailsVersion
        - Src:             'winpr/libwinpr/path/path.c:1200,17'
          Dst:             GetKnownSubPathV
        - Src:             'winpr/libwinpr/path/path.c:1206,10'
          Dst:             GetCombinedPathV
        - Src:             'winpr/libwinpr/path/path.c:1208,10'
          Dst:             GetCombinedPathV
        - Src:             'winpr/libwinpr/path/path.c:1213,15'
          Dst:             GetCombinedPathVA
    - functionName:    winpr_GetConfigFilePath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1220
      functionLinenumberEnd: 1224
      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:1222,10'
          Dst:             winpr_GetConfigFilePathV
        - Src:             'winpr/libwinpr/path/path.c:1223,9'
          Dst:             winpr_GetConfigFilePathV
    - functionName:    winpr_RemoveDirectory_RecursiveW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1181
      functionLinenumberEnd: 1188
      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:1182,15'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/path.c:1185,18'
          Dst:             winpr_RemoveDirectory_RecursiveA
    - functionName:    winpr_RemoveDirectory_RecursiveA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1109
      functionLinenumberEnd: 1178
      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:1115,29'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/path.c:1117,21'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/path.c:1120,2'
          Dst:             strncat
        - Src:             'winpr/libwinpr/path/path.c:1123,21'
          Dst:             NativePathCchAppendA
        - Src:             'winpr/libwinpr/path/path.c:1130,9'
          Dst:             FindFirstFileA
        - Src:             'winpr/libwinpr/path/path.c:1139,23'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/path.c:1147,21'
          Dst:             concat
        - Src:             'winpr/libwinpr/path/path.c:1152,11'
          Dst:             winpr_RemoveDirectory_RecursiveA
        - Src:             'winpr/libwinpr/path/path.c:1157,11'
          Dst:             winpr_DeleteFile
        - Src:             'winpr/libwinpr/path/path.c:1165,19'
          Dst:             FindNextFileA
        - Src:             'winpr/libwinpr/path/path.c:1170,8'
          Dst:             winpr_RemoveDirectory
        - Src:             'winpr/libwinpr/path/path.c:1175,2'
          Dst:             FindClose
    - 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:    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:    6
      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: 1097
      functionLinenumberEnd: 1106
      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:1099,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/path.c:1103,2'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/path/path.c:1104,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: 1074
      functionLinenumberEnd: 1094
      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:1075,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    PathGetSharedLibraryExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1004
      functionLinenumberEnd: 1071
      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:1006,47'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1009,6'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1010,49'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1013,6'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1015,6'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1017,6'
          Dst:             InitializeConstWCharFromUtf8
    - functionName:    PathGetSharedLibraryExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 948
      functionLinenumberEnd: 1001
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          106
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PathGetSeparatorW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 928
      functionLinenumberEnd: 935
      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: 918
      functionLinenumberEnd: 925
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PathCchConvertStyleW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 859
      functionLinenumberEnd: 911
      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: 804
      functionLinenumberEnd: 856
      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: 790
      functionLinenumberEnd: 792
      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:791,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:    35
      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: 784
      functionLinenumberEnd: 786
      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:785,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchStripPrefixW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 777
      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:759,22'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/path.c:761,11'
          Dst:             HRESULT_FROM_WIN32
        - Src:             'winpr/libwinpr/path/path.c:763,7'
          Dst:             IsCharAlphaW
        - Src:             'winpr/libwinpr/path/path.c:765,8'
          Dst:             wmemmove_s
        - Src:             'winpr/libwinpr/path/path.c:766,12'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchStripPrefixA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 707
      functionLinenumberEnd: 739
      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:724,7'
          Dst:             IsCharAlphaA
        - Src:             'winpr/libwinpr/path/path.c:726,8'
          Dst:             memmove_s
        - Src:             'winpr/libwinpr/path/path.c:727,12'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchStripToRootW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 697
      functionLinenumberEnd: 699
      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:698,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchStripToRootA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 693
      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:692,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchSkipRootW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 681
      functionLinenumberEnd: 683
      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:682,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchSkipRootA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 675
      functionLinenumberEnd: 677
      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:676,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathIsUNCExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 657
      functionLinenumberEnd: 668
      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: 643
      functionLinenumberEnd: 654
      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: 633
      functionLinenumberEnd: 635
      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:634,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchIsRootA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 627
      functionLinenumberEnd: 629
      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:628,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRemoveExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 619
      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:618,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRemoveExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 611
      functionLinenumberEnd: 613
      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:612,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRenameExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 601
      functionLinenumberEnd: 603
      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:602,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRenameExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 596
      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:595,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchFindExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 585
      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:584,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchFindExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 579
      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:    1
      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: 460
      functionLinenumberEnd: 462
      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:461,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCombineExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 454
      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:453,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCombineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 442
      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:441,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCombineA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 435
      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:434,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathAllocCanonicalizeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 424
      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:423,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathAllocCanonicalizeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 416
      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:415,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCanonicalizeExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 404
      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:403,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCanonicalizeExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 395
      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:394,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCanonicalizeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 382
      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:381,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCanonicalizeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 374
      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:373,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchAppendExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 363
      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:362,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchAppendExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 356
      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:355,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: 215
      functionLinenumberEnd: 217
      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:216,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRemoveBackslashExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:208,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchAddSeparatorExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:20,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:33,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSeparatorExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:47,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:60,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSlashExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:20,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:33,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSlashExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:47,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:60,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddBackslashExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:20,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:33,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddBackslashExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:47,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:60,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchRemoveBackslashW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 143
      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:142,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRemoveBackslashA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 137
      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:136,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchAddSeparatorW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:17,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:30,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSeparatorA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:42,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:55,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSlashW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:17,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:30,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSlashA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:42,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:55,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddBackslashW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:17,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:30,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddBackslashA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:42,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:55,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    winpr_PathMakePath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 888
      functionLinenumberEnd: 905
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PathMakePathA
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:892,9'
          Dst:             PathMakePathA
    - functionName:    PathMakePathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 605
      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:561,21'
          Dst:             PathGetSeparatorA
        - Src:             'winpr/libwinpr/path/shell.c:577,14'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/path/shell.c:588,12'
          Dst:             strchr
        - Src:             'winpr/libwinpr/path/shell.c:591,7'
          Dst:             mkdir
        - Src:             'winpr/libwinpr/path/shell.c:592,8'
          Dst:             __errno_location
    - functionName:    winpr_RemoveDirectory
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 839
      functionLinenumberEnd: 848
      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:841,12'
          Dst:             rmdir
        - Src:             'winpr/libwinpr/path/shell.c:844,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/path/shell.c:844,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/path/shell.c:844,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/path/shell.c:846,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: 813
      functionLinenumberEnd: 836
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - unlink
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:818,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: 759
      functionLinenumberEnd: 810
      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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:763,8'
          Dst:             stat64
        - Src:             'winpr/libwinpr/path/shell.c:769,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/path/shell.c:777,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/path/shell.c:782,8'
          Dst:             rename
        - Src:             'winpr/libwinpr/path/shell.c:785,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/path/shell.c:785,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/path/shell.c:785,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: 754
      functionLinenumberEnd: 755
      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:755,9'
          Dst:             winpr_MoveFileEx
    - functionName:    PathIsDirectoryEmptyW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 737
      functionLinenumberEnd: 748
      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:742,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:745,8'
          Dst:             PathIsDirectoryEmptyA
    - functionName:    PathIsDirectoryEmptyA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 714
      functionLinenumberEnd: 734
      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:717,13'
          Dst:             opendir
        - Src:             'winpr/libwinpr/path/shell.c:723,15'
          Dst:             readdir64
        - Src:             'winpr/libwinpr/path/shell.c:725,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/path/shell.c:725,39'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/path/shell.c:732,2'
          Dst:             closedir
    - functionName:    winpr_PathFileExists
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 868
      functionLinenumberEnd: 885
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PathFileExistsA
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:872,9'
          Dst:             PathFileExistsA
    - functionName:    PathFileExistsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 693
      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:693,10'
          Dst:             stat64
    - functionName:    PathFileExistsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 697
      functionLinenumberEnd: 710
      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:703,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:707,8'
          Dst:             winpr_PathFileExists
    - functionName:    PathIsRelativeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 686
      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:680,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:683,8'
          Dst:             PathIsRelativeA
    - functionName:    PathIsRelativeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 670
      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: 608
      functionLinenumberEnd: 660
      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:614,23'
          Dst:             PathGetSeparatorW
        - Src:             'winpr/libwinpr/path/shell.c:615,21'
          Dst:             PathGetSeparatorA
        - Src:             'winpr/libwinpr/path/shell.c:631,8'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:643,12'
          Dst:             strchr
        - Src:             'winpr/libwinpr/path/shell.c:646,7'
          Dst:             mkdir
        - Src:             'winpr/libwinpr/path/shell.c:647,8'
          Dst:             __errno_location
    - functionName:    GetCombinedPathV
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 492
      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:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:490,14'
          Dst:             GetCombinedPathVA
    - functionName:    GetCombinedPathVA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 552
      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:503,20'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:508,18'
          Dst:             winpr_vasprintf
        - Src:             'winpr/libwinpr/path/shell.c:521,22'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/shell.c:529,6'
          Dst:             PathCchConvertStyleA
        - Src:             'winpr/libwinpr/path/shell.c:538,6'
          Dst:             PathCchConvertStyleA
        - Src:             'winpr/libwinpr/path/shell.c:541,11'
          Dst:             NativePathCchAppendA
    - functionName:    GetCombinedPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 483
      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:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:481,10'
          Dst:             GetCombinedPathV
        - Src:             'winpr/libwinpr/path/shell.c:482,9'
          Dst:             GetCombinedPathV
    - functionName:    GetEnvironmentSubPathVA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 476
      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:468,14'
          Dst:             GetEnvironmentPath
        - Src:             'winpr/libwinpr/path/shell.c:473,18'
          Dst:             GetCombinedPathVA
    - functionName:    GetEnvironmentPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 448
      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:429,10'
          Dst:             GetEnvironmentVariableX
        - Src:             'winpr/libwinpr/path/shell.c:438,13'
          Dst:             GetEnvironmentVariableX
    - functionName:    GetEnvironmentSubPathV
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 463
      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:461,14'
          Dst:             GetEnvironmentSubPathVA
    - functionName:    GetEnvironmentSubPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 455
      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:453,10'
          Dst:             GetEnvironmentSubPathV
        - Src:             'winpr/libwinpr/path/shell.c:454,9'
          Dst:             GetEnvironmentSubPathV
    - functionName:    GetKnownSubPathVA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 422
      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:415,20'
          Dst:             GetKnownPath
        - Src:             'winpr/libwinpr/path/shell.c:419,18'
          Dst:             GetCombinedPathVA
    - functionName:    GetKnownPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      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:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:355,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:358,11'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:362,11'
          Dst:             GetPath_TEMP
        - Src:             'winpr/libwinpr/path/shell.c:366,11'
          Dst:             GetPath_XDG_DATA_HOME
        - Src:             'winpr/libwinpr/path/shell.c:370,11'
          Dst:             GetPath_XDG_CONFIG_HOME
        - Src:             'winpr/libwinpr/path/shell.c:374,11'
          Dst:             GetPath_XDG_CACHE_HOME
        - Src:             'winpr/libwinpr/path/shell.c:378,11'
          Dst:             GetPath_XDG_RUNTIME_DIR
        - Src:             'winpr/libwinpr/path/shell.c:382,11'
          Dst:             GetPath_SYSTEM_CONFIG_HOME
        - Src:             'winpr/libwinpr/path/shell.c:391,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/shell.c:391,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/shell.c:391,3'
          Dst:             GetKnownPathIdString
        - Src:             'winpr/libwinpr/path/shell.c:391,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetPath_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetEnvAlloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:121,9'
          Dst:             GetEnvAlloc
    - functionName:    GetPath_TEMP
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetEnvAlloc
        - _strdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:134,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:137,10'
          Dst:             _strdup
    - functionName:    GetPath_XDG_DATA_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - GetEnvAlloc
        - GetPath_HOME
        - snprintf
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:159,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:164,9'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:169,9'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:178,8'
          Dst:             snprintf
    - functionName:    GetPath_XDG_CONFIG_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          83
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - GetEnvAlloc
        - GetPath_HOME
        - GetPath_TEMP
        - snprintf
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:204,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:209,9'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:212,10'
          Dst:             GetPath_TEMP
        - Src:             'winpr/libwinpr/path/shell.c:217,9'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:226,8'
          Dst:             snprintf
    - functionName:    GetPath_XDG_CACHE_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - GetEnvAlloc
        - GetPath_HOME
        - snprintf
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:277,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:282,15'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:287,9'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:296,8'
          Dst:             snprintf
    - functionName:    GetPath_XDG_RUNTIME_DIR
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetEnvAlloc
        - GetPath_TEMP
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:341,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:347,9'
          Dst:             GetPath_TEMP
    - functionName:    GetPath_SYSTEM_CONFIG_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:242,9'
          Dst:             _strdup
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 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: 87
      functionLinenumberEnd: 111
      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:92,10'
          Dst:             GetEnvironmentVariableX
        - Src:             'winpr/libwinpr/path/shell.c:101,13'
          Dst:             GetEnvironmentVariableX
    - functionName:    GetKnownSubPathV
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetKnownSubPathVA
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:408,14'
          Dst:             GetKnownSubPathVA
    - functionName:    GetKnownSubPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetKnownSubPathV
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:399,10'
          Dst:             GetKnownSubPathV
        - Src:             'winpr/libwinpr/path/shell.c:400,9'
          Dst:             GetKnownSubPathV
    - functionName:    CancelSynchronousIo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/io/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 144
      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/io/io.c:142,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/io/io.c:143,2'
          Dst:             SetLastError
    - 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:    CancelIoEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/io/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/io/io.c:135,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/io/io.c:136,2'
          Dst:             SetLastError
    - functionName:    CancelIo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/io/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 130
      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/io/io.c:128,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/io/io.c:129,2'
          Dst:             SetLastError
    - functionName:    PostQueuedCompletionStatus
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/io/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/io/io.c:121,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/io/io.c:122,2'
          Dst:             SetLastError
    - functionName:    GetQueuedCompletionStatusEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/io/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/io/io.c:111,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/io/io.c:112,2'
          Dst:             SetLastError
    - functionName:    GetQueuedCompletionStatus
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/io/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/io/io.c:99,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/io/io.c:100,2'
          Dst:             SetLastError
    - functionName:    CreateIoCompletionPort
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/io/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/io/io.c:88,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/io/io.c:89,2'
          Dst:             SetLastError
    - functionName:    DeviceIoControl
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/io/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - '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/io/io.c:78,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/io/io.c:79,2'
          Dst:             SetLastError
    - functionName:    GetOverlappedResultEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/io/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/io/io.c:67,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/io/io.c:68,2'
          Dst:             SetLastError
    - functionName:    GetOverlappedResult
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/io/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/io/io.c:56,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/io/io.c:57,2'
          Dst:             SetLastError
    - functionName:    winpr_NCryptGetModulePath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - NCryptGetModulePath
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:359,9'
          Dst:             NCryptGetModulePath
    - functionName:    winpr_NCryptSecurityStatusError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          222
      EdgeCount:       86
      CyclomaticComplexity: 44
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/ncrypt/ncrypt.c:304,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    NCryptFreeBuffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    NCryptFreeObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - checkNCryptHandle
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:250,24'
          Dst:             checkNCryptHandle
    - functionName:    checkNCryptHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          115
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - memcmp
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/ncrypt/ncrypt.c:57,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:39,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:44,6'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:52,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:63,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:70,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:    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:    propertyStringToEnum
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          63
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - _wcscmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:207,6'
          Dst:             _wcscmp
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:211,11'
          Dst:             _wcscmp
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:215,11'
          Dst:             _wcscmp
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:219,11'
          Dst:             _wcscmp
    - functionName:    NCryptGetProperty
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          82
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - memcmp
        - propertyStringToEnum
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:237,6'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:240,13'
          Dst:             propertyStringToEnum
    - functionName:    NCryptOpenKey
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          74
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - checkNCryptHandle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:196,8'
          Dst:             checkNCryptHandle
    - functionName:    NCryptEnumKeys
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - checkNCryptHandle
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:183,8'
          Dst:             checkNCryptHandle
    - functionName:    winpr_NCryptOpenStorageProviderEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - NCryptOpenP11StorageProviderEx
        - WLog_Print_dbg_tag
        - _wcscmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:163,27'
          Dst:             _wcscmp
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:164,27'
          Dst:             _wcscmp
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:165,10'
          Dst:             NCryptOpenP11StorageProviderEx
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:167,17'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:168,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    NCryptOpenStorageProvider
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_NCryptOpenStorageProviderEx
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:155,9'
          Dst:             winpr_NCryptOpenStorageProviderEx
    - functionName:    NCryptEnumStorageProviders
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          108
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - _wcslen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:123,22'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:138,16'
          Dst:             _wcslen
    - functionName:    winpr_NCryptDefault_dtor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ncrypt_new_handle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt.c:82,26'
          Dst:             calloc
    - functionName:    WINPR_JSON_PrintUnformatted
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _strdup
        - json_object_to_json_string_ext
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:341,20'
          Dst:             json_object_to_json_string_ext
        - Src:             'winpr/libwinpr/utils/json/json-c.c:344,9'
          Dst:             _strdup
    - functionName:    json_object_to_json_string_ext
      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:    WINPR_JSON_Print
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _strdup
        - json_object_to_json_string_ext
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:333,20'
          Dst:             json_object_to_json_string_ext
        - Src:             'winpr/libwinpr/utils/json/json-c.c:336,9'
          Dst:             _strdup
    - functionName:    WINPR_JSON_AddArrayToObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_object_new_array
        - json_object_object_add
        - json_object_put
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:322,28'
          Dst:             json_object_new_array
        - Src:             'winpr/libwinpr/utils/json/json-c.c:323,6'
          Dst:             json_object_object_add
        - Src:             'winpr/libwinpr/utils/json/json-c.c:325,3'
          Dst:             json_object_put
    - functionName:    json_object_new_array
      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:    json_object_object_add
      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:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_object_put
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WINPR_JSON_AddItemToArray
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_object_array_add
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:314,17'
          Dst:             json_object_array_add
    - functionName:    json_object_array_add
      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_JSON_AddObjectToObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_object_new_object
        - json_object_object_add
        - json_object_put
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:303,28'
          Dst:             json_object_new_object
        - Src:             'winpr/libwinpr/utils/json/json-c.c:304,6'
          Dst:             json_object_object_add
        - Src:             'winpr/libwinpr/utils/json/json-c.c:306,3'
          Dst:             json_object_put
    - functionName:    json_object_new_object
      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_JSON_AddStringToObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_object_new_string
        - json_object_object_add
        - json_object_put
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:292,28'
          Dst:             json_object_new_string
        - Src:             'winpr/libwinpr/utils/json/json-c.c:293,6'
          Dst:             json_object_object_add
        - Src:             'winpr/libwinpr/utils/json/json-c.c:295,3'
          Dst:             json_object_put
    - functionName:    json_object_new_string
      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_JSON_AddIntegerToObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_object_new_int64
        - json_object_object_add
        - json_object_put
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:281,28'
          Dst:             json_object_new_int64
        - Src:             'winpr/libwinpr/utils/json/json-c.c:282,6'
          Dst:             json_object_object_add
        - Src:             'winpr/libwinpr/utils/json/json-c.c:284,3'
          Dst:             json_object_put
    - functionName:    json_object_new_int64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WINPR_JSON_AddNumberToObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_object_new_double
        - json_object_object_add
        - json_object_put
      functionUses:    40
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:270,28'
          Dst:             json_object_new_double
        - Src:             'winpr/libwinpr/utils/json/json-c.c:271,6'
          Dst:             json_object_object_add
        - Src:             'winpr/libwinpr/utils/json/json-c.c:273,3'
          Dst:             json_object_put
    - functionName:    json_object_new_double
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - double
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WINPR_JSON_AddBoolToObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_object_new_boolean
        - json_object_object_add
        - json_object_put
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:259,28'
          Dst:             json_object_new_boolean
        - Src:             'winpr/libwinpr/utils/json/json-c.c:260,6'
          Dst:             json_object_object_add
        - Src:             'winpr/libwinpr/utils/json/json-c.c:262,3'
          Dst:             json_object_put
    - functionName:    json_object_new_boolean
      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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WINPR_JSON_AddFalseToObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_object_new_boolean
        - json_object_object_add
        - json_object_put
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:248,28'
          Dst:             json_object_new_boolean
        - Src:             'winpr/libwinpr/utils/json/json-c.c:249,6'
          Dst:             json_object_object_add
        - Src:             'winpr/libwinpr/utils/json/json-c.c:251,3'
          Dst:             json_object_put
    - functionName:    WINPR_JSON_AddTrueToObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_object_new_boolean
        - json_object_object_add
        - json_object_put
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:237,28'
          Dst:             json_object_new_boolean
        - Src:             'winpr/libwinpr/utils/json/json-c.c:238,6'
          Dst:             json_object_object_add
        - Src:             'winpr/libwinpr/utils/json/json-c.c:240,3'
          Dst:             json_object_put
    - functionName:    WINPR_JSON_AddNullToObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_object_new_null
        - json_object_object_add
        - json_object_put
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:224,28'
          Dst:             json_object_new_null
        - Src:             'winpr/libwinpr/utils/json/json-c.c:225,6'
          Dst:             json_object_object_add
        - Src:             'winpr/libwinpr/utils/json/json-c.c:227,3'
          Dst:             json_object_put
    - functionName:    json_object_new_null
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WINPR_JSON_CreateObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_new_object
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:219,9'
          Dst:             json_object_new_object
    - functionName:    WINPR_JSON_CreateArray
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_new_array
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:214,9'
          Dst:             json_object_new_array
    - functionName:    WINPR_JSON_CreateString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.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:
        - json_object_new_string
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:209,9'
          Dst:             json_object_new_string
    - functionName:    WINPR_JSON_CreateNumber
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - double
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_new_double
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:204,9'
          Dst:             json_object_new_double
    - functionName:    WINPR_JSON_CreateBool
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_new_boolean
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:199,9'
          Dst:             json_object_new_boolean
    - functionName:    WINPR_JSON_CreateFalse
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_new_boolean
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:194,9'
          Dst:             json_object_new_boolean
    - functionName:    WINPR_JSON_CreateTrue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_new_boolean
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:189,9'
          Dst:             json_object_new_boolean
    - functionName:    WINPR_JSON_CreateNull
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_new_null
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:184,9'
          Dst:             json_object_new_null
    - functionName:    WINPR_JSON_IsTrue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_object_get_boolean
        - json_object_is_type
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:145,7'
          Dst:             json_object_is_type
        - Src:             'winpr/libwinpr/utils/json/json-c.c:147,18'
          Dst:             json_object_get_boolean
    - functionName:    json_object_is_type
      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:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_object_get_boolean
      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:    WINPR_JSON_IsFalse
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_object_get_boolean
        - json_object_is_type
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:137,7'
          Dst:             json_object_is_type
        - Src:             'winpr/libwinpr/utils/json/json-c.c:139,18'
          Dst:             json_object_get_boolean
    - functionName:    WINPR_JSON_IsString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_is_type
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:169,9'
          Dst:             json_object_is_type
    - functionName:    WINPR_JSON_IsBool
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_is_type
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:153,9'
          Dst:             json_object_is_type
    - functionName:    WINPR_JSON_IsNumber
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_object_is_type
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:163,9'
          Dst:             json_object_is_type
        - Src:             'winpr/libwinpr/utils/json/json-c.c:164,9'
          Dst:             json_object_is_type
    - functionName:    WINPR_JSON_IsNull
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_is_type
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:158,9'
          Dst:             json_object_is_type
    - functionName:    WINPR_JSON_IsObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_is_type
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:179,9'
          Dst:             json_object_is_type
    - functionName:    WINPR_JSON_IsArray
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_is_type
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:174,9'
          Dst:             json_object_is_type
    - functionName:    WINPR_JSON_IsInvalid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          80
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - WINPR_JSON_IsArray
        - WINPR_JSON_IsBool
        - WINPR_JSON_IsNull
        - WINPR_JSON_IsNumber
        - WINPR_JSON_IsObject
        - WINPR_JSON_IsString
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:120,6'
          Dst:             WINPR_JSON_IsArray
        - Src:             'winpr/libwinpr/utils/json/json-c.c:122,6'
          Dst:             WINPR_JSON_IsObject
        - Src:             'winpr/libwinpr/utils/json/json-c.c:124,6'
          Dst:             WINPR_JSON_IsNull
        - Src:             'winpr/libwinpr/utils/json/json-c.c:126,6'
          Dst:             WINPR_JSON_IsNumber
        - Src:             'winpr/libwinpr/utils/json/json-c.c:128,6'
          Dst:             WINPR_JSON_IsBool
        - Src:             'winpr/libwinpr/utils/json/json-c.c:130,6'
          Dst:             WINPR_JSON_IsString
    - functionName:    WINPR_JSON_GetNumberValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_get_double
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:115,9'
          Dst:             json_object_get_double
    - functionName:    json_object_get_double
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WINPR_JSON_GetStringValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_get_string
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:110,9'
          Dst:             json_object_get_string
    - functionName:    json_object_get_string
      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_JSON_GetErrorPtr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_util_get_last_err
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:105,9'
          Dst:             json_util_get_last_err
    - functionName:    json_util_get_last_err
      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_JSON_HasObjectItem
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_object_get_ex
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:100,9'
          Dst:             json_object_object_get_ex
    - functionName:    json_object_object_get_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_JSON_GetObjectItemCaseSensitive
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_object_get
      functionUses:    33
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:95,9'
          Dst:             json_object_object_get
    - functionName:    json_object_object_get
      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:    WINPR_JSON_GetObjectItem
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _stricmp
        - json_object_iter_begin
        - json_object_iter_end
        - json_object_iter_equal
        - json_object_iter_next
        - json_object_iter_peek_name
        - json_object_iter_peek_value
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:79,35'
          Dst:             json_object_iter_begin
        - Src:             'winpr/libwinpr/utils/json/json-c.c:80,38'
          Dst:             json_object_iter_end
        - Src:             'winpr/libwinpr/utils/json/json-c.c:81,10'
          Dst:             json_object_iter_equal
        - Src:             'winpr/libwinpr/utils/json/json-c.c:83,21'
          Dst:             json_object_iter_peek_name
        - Src:             'winpr/libwinpr/utils/json/json-c.c:84,7'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/json/json-c.c:86,11'
          Dst:             json_object_iter_peek_value
        - Src:             'winpr/libwinpr/utils/json/json-c.c:88,3'
          Dst:             json_object_iter_next
    - functionName:    json_object_iter_begin
      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:    json_object_iter_end
      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:    json_object_iter_equal
      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:    json_object_iter_peek_name
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_object_iter_peek_value
      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:    json_object_iter_next
      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_JSON_GetArraySize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_array_length
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:74,9'
          Dst:             json_object_array_length
    - functionName:    json_object_array_length
      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:    WINPR_JSON_GetArrayItem
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_array_get_idx
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:69,9'
          Dst:             json_object_array_get_idx
    - functionName:    json_object_array_get_idx
      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_JSON_Delete
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_put
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:64,2'
          Dst:             json_object_put
    - functionName:    WINPR_JSON_ParseWithLength
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - json_tokener_free
        - json_tokener_new
        - json_tokener_parse_ex
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:53,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/json/json-c.c:54,22'
          Dst:             json_tokener_new
        - Src:             'winpr/libwinpr/utils/json/json-c.c:57,21'
          Dst:             json_tokener_parse_ex
        - Src:             'winpr/libwinpr/utils/json/json-c.c:58,2'
          Dst:             json_tokener_free
    - functionName:    json_tokener_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:    json_tokener_parse_ex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_tokener_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:    WINPR_JSON_Parse
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_tokener_parse
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:48,9'
          Dst:             json_tokener_parse
    - functionName:    json_tokener_parse
      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_JSON_version
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json-c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_c_version
        - snprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json-c.c:43,45'
          Dst:             json_c_version
        - Src:             'winpr/libwinpr/utils/json/json-c.c:43,9'
          Dst:             snprintf
    - functionName:    json_c_version
      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:    _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_JSON_ParseFromFileFP
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         38
      ICount:          168
      EdgeCount:       47
      CyclomaticComplexity: 11
      functionsReached:
        - WINPR_JSON_ParseWithLength
        - _ftelli64
        - calloc
        - fread
        - fseek
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json.c:42,6'
          Dst:             fseek
        - Src:             'winpr/libwinpr/utils/json/json.c:45,21'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/utils/json/json.c:49,6'
          Dst:             fseek
        - Src:             'winpr/libwinpr/utils/json/json.c:52,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/json/json.c:52,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/json/json.c:53,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/json/json.c:58,19'
          Dst:             fread
        - Src:             'winpr/libwinpr/utils/json/json.c:60,10'
          Dst:             WINPR_JSON_ParseWithLength
    - functionName:    WINPR_JSON_ParseFromFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/json/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WINPR_JSON_ParseFromFileFP
        - fclose
        - winpr_fopen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/json/json.c:29,13'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/json/json.c:32,21'
          Dst:             WINPR_JSON_ParseFromFileFP
        - Src:             'winpr/libwinpr/utils/json/json.c:33,8'
          Dst:             fclose
    - 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:    6
      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:    2
      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:    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:    2
      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:    4
      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:    4
      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:    2
      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:    winpr_BinToHexString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/print.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 262
      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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/print.c:254,7'
          Dst:             winpr_BinToHexStringBuffer
    - functionName:    winpr_BinToHexStringBuffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/print.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          192
      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:    3
      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:    4
      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:    2
      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_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: 245
      functionLinenumberEnd: 258
      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:    280
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:247,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:248,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:250,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:253,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/stream.c:254,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_SafeSeekEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 509
      functionLinenumberEnd: 516
      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:    83
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:510,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/stream.c:514,2'
          Dst:             Stream_Seek
    - functionName:    Stream_CheckAndLogRequiredLengthEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 401
      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:    314
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:388,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:389,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/stream.c:396,19'
          Dst:             Stream_CheckAndLogRequiredLengthExVa
    - functionName:    Stream_GetRemainingLength
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 275
      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:    254
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:263,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:264,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:265,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:267,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:270,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/stream.c:271,3'
          Dst:             winpr_log_backtrace
    - functionName:    Stream_CheckAndLogRequiredLengthExVa
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 413
      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:406,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:407,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/stream.c:410,51'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/stream.c:410,10'
          Dst:             Stream_CheckAndLogRequiredLengthWLogExVa
    - functionName:    Stream_CheckAndLogRequiredLengthWLogExVa
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 456
      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:439,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:440,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/stream.c:446,9'
          Dst:             vsnprintf
        - Src:             'winpr/libwinpr/utils/stream.c:448,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/stream.c:448,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/utils/stream.c:452,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: 496
      functionLinenumberEnd: 506
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:497,21'
          Dst:             Stream_ConstPointer
        - Src:             'winpr/libwinpr/utils/stream.c:501,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/stream.c:504,2'
          Dst:             Stream_Seek
        - Src:             'winpr/libwinpr/utils/stream.c:505,9'
          Dst:             ConvertWCharNToUtf8
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1299
      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:1298,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Read_UTF16_String_As_UTF8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 492
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:483,21'
          Dst:             Stream_ConstPointer
        - Src:             'winpr/libwinpr/utils/stream.c:487,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/stream.c:490,2'
          Dst:             Stream_Seek
        - Src:             'winpr/libwinpr/utils/stream.c:491,9'
          Dst:             ConvertWCharNToUtf8Alloc
    - 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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1242,3'
          Dst:             Stream_Fill
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      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:1292,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write_UTF16_String_From_UTF8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 479
      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:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:462,15'
          Dst:             Stream_Pointer
        - Src:             'winpr/libwinpr/utils/stream.c:466,8'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/utils/stream.c:469,8'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/utils/stream.c:473,3'
          Dst:             Stream_Seek
        - Src:             'winpr/libwinpr/utils/stream.c:477,3'
          Dst:             Stream_Zero
    - functionName:    Stream_CheckAndLogRequiredCapacityEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 324
      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:    32
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:310,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:311,24'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/libwinpr/utils/stream.c:319,7'
          Dst:             Stream_CheckAndLogRequiredCapacityExVa
    - functionName:    Stream_CheckAndLogRequiredCapacityExVa
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 336
      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:329,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:330,24'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/libwinpr/utils/stream.c:333,53'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/stream.c:333,10'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogExVa
    - functionName:    Stream_CheckAndLogRequiredCapacityWLogExVa
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 361
      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:344,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:345,24'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/libwinpr/utils/stream.c:351,9'
          Dst:             vsnprintf
        - Src:             'winpr/libwinpr/utils/stream.c:353,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/stream.c:353,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/utils/stream.c:357,3'
          Dst:             winpr_log_backtrace_ex
    - functionName:    Stream_CheckAndLogRequiredLengthWLogEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 432
      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:    222
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:418,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:419,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/stream.c:427,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogExVa
    - functionName:    Stream_CheckAndLogRequiredCapacityWLogEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 382
      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:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:368,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:369,24'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/libwinpr/utils/stream.c:377,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: 294
      functionLinenumberEnd: 305
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:295,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:296,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:298,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/stream.c:302,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: 278
      functionLinenumberEnd: 291
      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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:279,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:280,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:284,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/utils/stream.c:288,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:288,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:288,3'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    Stream_SealLength
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 211
      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:    48
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:199,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:200,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:202,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:207,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/stream.c:208,3'
          Dst:             winpr_log_backtrace
    - functionName:    Stream_SetLength
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 183
      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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:176,13'
          Dst:             Stream_Capacity
    - functionName:    Stream_Capacity
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1336
      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:1335,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          67
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureValidity
      functionUses:    115
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:165,3'
          Dst:             Stream_EnsureValidity
    - functionName:    Stream_EnsureValidity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 159
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:153,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/stream.c:153,2'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/utils/stream.c:153,2'
          Dst:             abort
        - Src:             'winpr/libwinpr/utils/stream.c:154,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/stream.c:154,2'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/utils/stream.c:154,2'
          Dst:             abort
        - Src:             'winpr/libwinpr/utils/stream.c:157,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/stream.c:157,2'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/utils/stream.c:157,2'
          Dst:             abort
        - Src:             'winpr/libwinpr/utils/stream.c:158,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/stream.c:158,2'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/utils/stream.c:158,2'
          Dst:             abort
    - functionName:    abort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Stream_StaticInit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 146
      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:    26
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:136,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:137,2'
          Dst:             winpr_int_assert
    - functionName:    Stream_StaticConstInit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 129
      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:    33
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:129,9'
          Dst:             Stream_StaticInit
    - functionName:    Stream_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 118
      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:    87
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:94,6'
          Dst:             calloc
    - functionName:    Stream_EnsureRemainingCapacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Capacity
        - Stream_EnsureCapacity
        - Stream_GetPosition
      functionUses:    254
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:82,6'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/stream.c:82,37'
          Dst:             Stream_Capacity
        - Src:             'winpr/libwinpr/utils/stream.c:83,35'
          Dst:             Stream_Capacity
        - Src:             'winpr/libwinpr/utils/stream.c:83,10'
          Dst:             Stream_EnsureCapacity
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_EnsureCapacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          139
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_GetPosition
        - Stream_SetPosition
        - realloc
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:46,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:53,26'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/stream.c:67,20'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/stream.c:77,9'
          Dst:             Stream_SetPosition
    - functionName:    Stream_SetPosition
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 194
      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:    74
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:187,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:    49
      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:    5
      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:    4
      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:    5
      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:    4
      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:    14
      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:    1
      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:    2
      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:    4
      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:    __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:    _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:    winpr_ObjectStringFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Object.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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_ObjectWStringClone
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Object.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _wcsdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/Object.c:36,9'
          Dst:             _wcsdup
    - functionName:    winpr_ObjectStringClone
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Object.c'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _strdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/Object.c:28,9'
          Dst:             _strdup
    - functionName:    PubSub_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/PubSub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - DeleteCriticalSection
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:271,4'
          Dst:             DeleteCriticalSection
    - functionName:    PubSub_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/PubSub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          86
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeCriticalSectionAndSpinCount
        - PubSub_Free
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:240,30'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:247,31'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:253,32'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:261,2'
          Dst:             PubSub_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:    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:    PubSub_OnEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/PubSub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          166
      EdgeCount:       46
      CyclomaticComplexity: 8
      functionsReached:
        - PubSub_FindEventType
        - PubSub_Lock
        - PubSub_Unlock
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:202,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:203,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:204,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:208,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:213,3'
          Dst:             PubSub_Lock
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:216,22'
          Dst:             PubSub_FindEventType
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:229,3'
          Dst:             PubSub_Unlock
    - functionName:    PubSub_Lock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/PubSub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 66
      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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:63,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:65,3'
          Dst:             EnterCriticalSection
    - functionName:    PubSub_FindEventType
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/PubSub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          86
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:79,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:80,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:83,7'
          Dst:             strcmp
    - functionName:    PubSub_Unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/PubSub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 73
      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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:70,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:72,3'
          Dst:             LeaveCriticalSection
    - functionName:    PubSub_Unsubscribe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/PubSub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          184
      EdgeCount:       40
      CyclomaticComplexity: 8
      functionsReached:
        - PubSub_FindEventType
        - PubSub_Lock
        - PubSub_Unlock
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:163,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:164,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:171,3'
          Dst:             PubSub_Lock
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:173,10'
          Dst:             PubSub_FindEventType
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:194,3'
          Dst:             PubSub_Unlock
    - functionName:    PubSub_Subscribe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/PubSub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          135
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - PubSub_FindEventType
        - PubSub_Lock
        - PubSub_Unlock
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:131,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:138,3'
          Dst:             PubSub_Lock
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:140,10'
          Dst:             PubSub_FindEventType
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:153,3'
          Dst:             PubSub_Unlock
    - functionName:    PubSub_AddEventTypes
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/PubSub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          205
      EdgeCount:       56
      CyclomaticComplexity: 9
      functionsReached:
        - PubSub_Lock
        - PubSub_Unlock
        - realloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:95,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:96,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:98,3'
          Dst:             PubSub_Lock
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:101,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:108,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:112,40'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:124,3'
          Dst:             PubSub_Unlock
    - functionName:    PubSub_GetEventTypes
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/PubSub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          46
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/PubSub.c:50,2'
          Dst:             winpr_int_assert
    - functionName:    BitStream_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BitStream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BitStream_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BitStream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/BitStream.c:166,32'
          Dst:             calloc
    - functionName:    BitStream_Attach
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BitStream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/BitStream.c:150,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BitStream.c:151,2'
          Dst:             winpr_int_assert
    - functionName:    ReverseBits32
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BitStream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          38
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      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:    BitDump
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BitStream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          188
      EdgeCount:       45
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - snprintf
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/BitStream.c:102,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BitStream.c:103,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BitStream.c:110,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BitStream.c:111,18'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/collections/BitStream.c:119,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/collections/BitStream.c:124,3'
          Dst:             WLog_Print_dbg_tag
    - 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:    7
      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:    2
      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:    8
      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:    5
      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:    14
      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:    13
      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:    3
      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:    1
      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:    2
      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:    14
      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:    10
      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:    8
      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:    HashTable_IsProbablePrime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          50
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    HashTable_CalculateIdealNumOfBuckets
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - HashTable_IsProbablePrime
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:124,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:135,10'
          Dst:             HashTable_IsProbablePrime
    - functionName:    disposeValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:221,2'
          Dst:             winpr_int_assert
    - functionName:    disposeKey
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:214,2'
          Dst:             winpr_int_assert
    - functionName:    HashTable_SetupForStringData
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 858
      functionLinenumberEnd: 877
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - HashTable_KeyObject
        - HashTable_SetHashFunction
        - HashTable_StringHash
        - HashTable_ValueObject
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:861,7'
          Dst:             HashTable_SetHashFunction
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:861,7'
          Dst:             HashTable_StringHash
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:864,8'
          Dst:             HashTable_KeyObject
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:871,9'
          Dst:             HashTable_ValueObject
    - functionName:    HashTable_StringHash
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          35
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    HashTable_SetHashFunction
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 851
      functionLinenumberEnd: 854
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:852,2'
          Dst:             winpr_int_assert
    - functionName:    HashTable_KeyObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 839
      functionLinenumberEnd: 841
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:840,2'
          Dst:             winpr_int_assert
    - functionName:    HashTable_StringCompare
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:81,10'
          Dst:             strcmp
    - functionName:    HashTable_StringClone
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_ObjectStringClone
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:99,9'
          Dst:             winpr_ObjectStringClone
    - functionName:    HashTable_StringFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_ObjectStringFree
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:104,2'
          Dst:             winpr_ObjectStringFree
    - functionName:    HashTable_ValueObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 845
      functionLinenumberEnd: 847
      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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:846,2'
          Dst:             winpr_int_assert
    - functionName:    HashTable_Unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 833
      functionLinenumberEnd: 836
      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:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:834,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:835,2'
          Dst:             LeaveCriticalSection
    - functionName:    HashTable_Lock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 827
      functionLinenumberEnd: 830
      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:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:828,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:829,2'
          Dst:             EnterCriticalSection
    - functionName:    HashTable_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 824
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          89
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - DeleteCriticalSection
        - disposePair
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:815,5'
          Dst:             disposePair
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:821,2'
          Dst:             DeleteCriticalSection
    - functionName:    disposePair
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          50
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - disposeKey
        - disposeValue
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:228,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:231,2'
          Dst:             disposeKey
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:232,2'
          Dst:             disposeValue
    - functionName:    HashTable_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 765
      functionLinenumberEnd: 795
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          91
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - HashTable_Free
        - InitializeCriticalSectionAndSpinCount
        - calloc
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:766,35'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:772,7'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:776,40'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:792,2'
          Dst:             HashTable_Free
    - functionName:    HashTable_PointerHash
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    HashTable_PointerCompare
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    HashTable_ContainsValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 725
      functionLinenumberEnd: 758
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          153
      EdgeCount:       42
      CyclomaticComplexity: 10
      functionsReached:
        - EnterCriticalSection
        - HashTable_Equals
        - LeaveCriticalSection
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:728,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:733,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:741,34'
          Dst:             HashTable_Equals
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:755,3'
          Dst:             LeaveCriticalSection
    - functionName:    HashTable_Equals
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          67
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:187,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:188,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:189,2'
          Dst:             winpr_int_assert
    - functionName:    HashTable_ContainsKey
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 700
      functionLinenumberEnd: 718
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          102
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - EnterCriticalSection
        - HashTable_Get
        - LeaveCriticalSection
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:704,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:709,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:711,9'
          Dst:             HashTable_Get
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:715,3'
          Dst:             LeaveCriticalSection
    - functionName:    HashTable_Get
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          98
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - HashTable_Equals
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:199,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:206,18'
          Dst:             HashTable_Equals
    - functionName:    HashTable_Contains
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 675
      functionLinenumberEnd: 693
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          102
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - EnterCriticalSection
        - HashTable_Get
        - LeaveCriticalSection
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:679,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:684,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:686,9'
          Dst:             HashTable_Get
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:690,3'
          Dst:             LeaveCriticalSection
    - functionName:    HashTable_Foreach
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 614
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          258
      EdgeCount:       61
      CyclomaticComplexity: 13
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - disposePair
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:617,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:618,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:621,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:651,6'
          Dst:             disposePair
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:666,3'
          Dst:             LeaveCriticalSection
    - functionName:    HashTable_GetKeys
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 556
      functionLinenumberEnd: 611
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          217
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:562,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:565,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:575,4'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:580,22'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:585,4'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:604,3'
          Dst:             LeaveCriticalSection
    - functionName:    HashTable_Clear
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          148
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - EnterCriticalSection
        - HashTable_Rehash
        - LeaveCriticalSection
        - disposePair
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:514,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:517,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:535,5'
          Dst:             disposePair
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:545,3'
          Dst:             HashTable_Rehash
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:548,3'
          Dst:             LeaveCriticalSection
    - functionName:    HashTable_Rehash
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          153
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - HashTable_CalculateIdealNumOfBuckets
        - calloc
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:147,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:149,18'
          Dst:             HashTable_CalculateIdealNumOfBuckets
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:154,36'
          Dst:             calloc
    - functionName:    HashTable_SetItemValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          111
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - EnterCriticalSection
        - HashTable_Get
        - LeaveCriticalSection
        - setValue
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:484,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:489,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:491,9'
          Dst:             HashTable_Get
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:497,3'
          Dst:             setValue
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:501,3'
          Dst:             LeaveCriticalSection
    - functionName:    setValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          73
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - disposeValue
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:258,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:261,2'
          Dst:             disposeValue
    - functionName:    HashTable_GetItemValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          107
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - EnterCriticalSection
        - HashTable_Get
        - LeaveCriticalSection
        - winpr_int_assert
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:457,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:462,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:464,9'
          Dst:             HashTable_Get
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:470,3'
          Dst:             LeaveCriticalSection
    - functionName:    HashTable_Remove
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          249
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - EnterCriticalSection
        - HashTable_Equals
        - HashTable_Rehash
        - LeaveCriticalSection
        - disposePair
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:394,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:399,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:404,18'
          Dst:             HashTable_Equals
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:430,2'
          Dst:             disposePair
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:438,4'
          Dst:             HashTable_Rehash
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:443,3'
          Dst:             LeaveCriticalSection
    - functionName:    setKey
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          73
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - disposeKey
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:238,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:241,2'
          Dst:             disposeKey
    - functionName:    HashTable_Insert
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          307
      EdgeCount:       64
      CyclomaticComplexity: 16
      functionsReached:
        - EnterCriticalSection
        - HashTable_Equals
        - HashTable_Rehash
        - LeaveCriticalSection
        - calloc
        - setKey
        - setValue
        - winpr_int_assert
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:318,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:323,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:328,18'
          Dst:             HashTable_Equals
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:343,4'
          Dst:             setKey
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:348,4'
          Dst:             setValue
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:354,29'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:358,4'
          Dst:             setKey
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:359,4'
          Dst:             setValue
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:371,6'
          Dst:             HashTable_Rehash
        - Src:             'winpr/libwinpr/utils/collections/HashTable.c:378,3'
          Dst:             LeaveCriticalSection
    - functionName:    HashTable_Count
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/HashTable.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 292
      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/libwinpr/utils/collections/HashTable.c:291,2'
          Dst:             winpr_int_assert
    - functionName:    ListDictionary_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - DeleteCriticalSection
        - ListDictionary_Clear
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:558,3'
          Dst:             ListDictionary_Clear
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:559,3'
          Dst:             DeleteCriticalSection
    - functionName:    ListDictionary_Clear
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          98
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - ListDictionary_Lock
        - ListDictionary_Unlock
        - item_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:290,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:293,3'
          Dst:             ListDictionary_Lock
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:303,4'
          Dst:             item_free
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:311,3'
          Dst:             ListDictionary_Unlock
    - functionName:    ListDictionary_Lock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 108
      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:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:105,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:107,2'
          Dst:             EnterCriticalSection
    - functionName:    item_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          85
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:189,2'
          Dst:             winpr_int_assert
    - functionName:    ListDictionary_Unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 119
      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:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:116,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:118,2'
          Dst:             LeaveCriticalSection
    - functionName:    default_equal_function
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ListDictionary_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 552
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - InitializeCriticalSectionAndSpinCount
        - calloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:536,54'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:543,7'
          Dst:             InitializeCriticalSectionAndSpinCount
    - functionName:    item_set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          96
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:203,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:204,2'
          Dst:             winpr_int_assert
    - functionName:    ListDictionary_SetItemValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 490
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          136
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - ListDictionary_Lock
        - ListDictionary_Unlock
        - item_set
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:495,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:498,3'
          Dst:             ListDictionary_Lock
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:515,4'
          Dst:             item_set
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:521,3'
          Dst:             ListDictionary_Unlock
    - functionName:    ListDictionary_GetItemValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          131
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - ListDictionary_Lock
        - ListDictionary_Unlock
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:456,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:459,3'
          Dst:             ListDictionary_Lock
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:479,3'
          Dst:             ListDictionary_Unlock
    - functionName:    ListDictionary_Take_Head
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ListDictionary_Remove_Or_Take_Head
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:443,9'
          Dst:             ListDictionary_Remove_Or_Take_Head
    - functionName:    ListDictionary_Remove_Or_Take_Head
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          108
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - ListDictionary_Lock
        - ListDictionary_Unlock
        - item_free
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:413,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:416,3'
          Dst:             ListDictionary_Lock
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:427,3'
          Dst:             item_free
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:431,3'
          Dst:             ListDictionary_Unlock
    - functionName:    ListDictionary_Remove_Head
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ListDictionary_Remove_Or_Take_Head
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:438,2'
          Dst:             ListDictionary_Remove_Or_Take_Head
    - functionName:    ListDictionary_Take
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ListDictionary_RemoveOrTake
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:401,9'
          Dst:             ListDictionary_RemoveOrTake
    - functionName:    ListDictionary_RemoveOrTake
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          154
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - ListDictionary_Lock
        - ListDictionary_Unlock
        - item_free
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:357,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:360,3'
          Dst:             ListDictionary_Lock
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:380,4'
          Dst:             item_free
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:389,3'
          Dst:             ListDictionary_Unlock
    - functionName:    ListDictionary_Remove
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ListDictionary_RemoveOrTake
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:396,2'
          Dst:             ListDictionary_RemoveOrTake
    - functionName:    ListDictionary_Contains
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          105
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - ListDictionary_Lock
        - ListDictionary_Unlock
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:323,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:326,3'
          Dst:             ListDictionary_Lock
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:340,3'
          Dst:             ListDictionary_Unlock
    - functionName:    new_item
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          102
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - item_free
        - item_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:218,52'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:229,2'
          Dst:             item_set
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:236,2'
          Dst:             item_free
    - functionName:    ListDictionary_Add
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          119
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - ListDictionary_Lock
        - ListDictionary_Unlock
        - new_item
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:248,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:251,3'
          Dst:             ListDictionary_Lock
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:253,30'
          Dst:             new_item
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:276,3'
          Dst:             ListDictionary_Unlock
    - functionName:    ListDictionary_GetKeys
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          190
      EdgeCount:       48
      CyclomaticComplexity: 12
      functionsReached:
        - ListDictionary_Lock
        - ListDictionary_Unlock
        - calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:133,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:138,3'
          Dst:             ListDictionary_Lock
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:155,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:160,5'
          Dst:             ListDictionary_Unlock
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:182,3'
          Dst:             ListDictionary_Unlock
    - functionName:    ListDictionary_Count
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          93
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - ListDictionary_Lock
        - ListDictionary_Unlock
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:77,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:80,3'
          Dst:             ListDictionary_Lock
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:94,3'
          Dst:             ListDictionary_Unlock
    - functionName:    ListDictionary_ValueObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 62
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:61,2'
          Dst:             winpr_int_assert
    - functionName:    ListDictionary_KeyObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ListDictionary.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 56
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ListDictionary.c:55,2'
          Dst:             winpr_int_assert
    - functionName:    BufferPool_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BufferPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 573
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - BufferPool_Clear
        - DeleteCriticalSection
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:576,3'
          Dst:             BufferPool_Clear
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:579,4'
          Dst:             DeleteCriticalSection
    - functionName:    BufferPool_Clear
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BufferPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 503
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          170
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - BufferPool_Lock
        - BufferPool_Unlock
        - winpr_aligned_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:461,2'
          Dst:             BufferPool_Lock
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:472,5'
          Dst:             winpr_aligned_free
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:486,5'
          Dst:             winpr_aligned_free
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:496,5'
          Dst:             winpr_aligned_free
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:502,2'
          Dst:             BufferPool_Unlock
    - functionName:    BufferPool_Lock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BufferPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - EnterCriticalSection
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:62,3'
          Dst:             EnterCriticalSection
    - functionName:    BufferPool_Unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BufferPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - LeaveCriticalSection
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:72,3'
          Dst:             LeaveCriticalSection
    - functionName:    BufferPool_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BufferPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 570
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         88
      ICount:          369
      EdgeCount:       105
      CyclomaticComplexity: 19
      functionsReached:
        - BufferPool_Free
        - InitializeCriticalSectionAndSpinCount
        - calloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:513,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:527,9'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:538,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:538,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:538,16'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:549,8'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:549,8'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:548,37'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:556,8'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:556,8'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:555,37'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:567,2'
          Dst:             BufferPool_Free
    - functionName:    BufferPool_ShiftUsed
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BufferPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         113
      ICount:          477
      EdgeCount:       134
      CyclomaticComplexity: 23
      functionsReached:
        - realloc
        - winpr_aligned_realloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:148,35'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:148,35'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:146,35'
          Dst:             winpr_aligned_realloc
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:153,35'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:153,35'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:151,35'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:160,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:160,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:166,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:166,3'
          Dst:             winpr_int_assert
    - functionName:    BufferPool_Return
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BufferPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         80
      ICount:          430
      EdgeCount:       98
      CyclomaticComplexity: 20
      functionsReached:
        - BufferPool_Lock
        - BufferPool_ShiftUsed
        - BufferPool_Unlock
        - realloc
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:387,2'
          Dst:             BufferPool_Lock
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:397,44'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:397,44'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:396,30'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:424,9'
          Dst:             BufferPool_ShiftUsed
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:435,35'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:435,35'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:433,51'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:451,2'
          Dst:             BufferPool_Unlock
    - functionName:    BufferPool_ShiftAvailable
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BufferPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         150
      ICount:          598
      EdgeCount:       173
      CyclomaticComplexity: 25
      functionsReached:
        - realloc
        - winpr_aligned_realloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:95,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:99,35'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:99,35'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:97,34'
          Dst:             winpr_aligned_realloc
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:104,35'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:104,35'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:102,34'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:111,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:111,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:111,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:111,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:118,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:118,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:118,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:118,3'
          Dst:             winpr_int_assert
    - functionName:    BufferPool_Take
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BufferPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         239
      ICount:          987
      EdgeCount:       287
      CyclomaticComplexity: 50
      functionsReached:
        - BufferPool_Lock
        - BufferPool_ShiftAvailable
        - BufferPool_Unlock
        - realloc
        - winpr_aligned_free
        - winpr_aligned_malloc
        - winpr_aligned_realloc
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:248,2'
          Dst:             BufferPool_Lock
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:260,35'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:260,35'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:260,14'
          Dst:             winpr_aligned_malloc
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:263,21'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:263,21'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:308,36'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:308,36'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:308,15'
          Dst:             winpr_aligned_malloc
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:311,22'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:311,22'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:326,18'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:326,18'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:325,18'
          Dst:             winpr_aligned_realloc
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:328,34'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:328,34'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:328,18'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:336,41'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:336,41'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:336,9'
          Dst:             BufferPool_ShiftAvailable
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:345,26'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:345,26'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:350,26'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:363,2'
          Dst:             BufferPool_Unlock
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:369,3'
          Dst:             winpr_aligned_free
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:373,2'
          Dst:             BufferPool_Unlock
    - functionName:    BufferPool_GetBufferSize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BufferPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          98
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - BufferPool_Lock
        - BufferPool_Unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:208,2'
          Dst:             BufferPool_Lock
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:231,2'
          Dst:             BufferPool_Unlock
    - functionName:    BufferPool_GetPoolSize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/BufferPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - BufferPool_Lock
        - BufferPool_Unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:181,2'
          Dst:             BufferPool_Lock
        - Src:             'winpr/libwinpr/utils/collections/BufferPool.c:194,2'
          Dst:             BufferPool_Unlock
    - functionName:    ObjectPool_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ObjectPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - DeleteCriticalSection
        - ObjectPool_Clear
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:186,2'
          Dst:             ObjectPool_Clear
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:189,3'
          Dst:             DeleteCriticalSection
    - functionName:    ObjectPool_Clear
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ObjectPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ObjectPool_Lock
        - ObjectPool_Unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:139,2'
          Dst:             ObjectPool_Lock
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:149,2'
          Dst:             ObjectPool_Unlock
    - functionName:    ObjectPool_Lock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ObjectPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 51
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:48,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:50,3'
          Dst:             EnterCriticalSection
    - functionName:    ObjectPool_Unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ObjectPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 58
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:55,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:57,3'
          Dst:             LeaveCriticalSection
    - functionName:    ObjectPool_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ObjectPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          72
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeCriticalSectionAndSpinCount
        - ObjectPool_EnsureCapacity
        - ObjectPool_Free
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:158,36'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:167,8'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:171,7'
          Dst:             ObjectPool_EnsureCapacity
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:177,2'
          Dst:             ObjectPool_Free
    - functionName:    ObjectPool_EnsureCapacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ObjectPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - realloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:89,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:97,28'
          Dst:             realloc
    - functionName:    ObjectPool_Object
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ObjectPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 130
      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/ObjectPool.c:129,2'
          Dst:             winpr_int_assert
    - functionName:    ObjectPool_Return
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ObjectPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ObjectPool_EnsureCapacity
        - ObjectPool_Lock
        - ObjectPool_Unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:113,2'
          Dst:             ObjectPool_Lock
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:115,7'
          Dst:             ObjectPool_EnsureCapacity
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:124,2'
          Dst:             ObjectPool_Unlock
    - functionName:    ObjectPool_Take
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ObjectPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          97
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ObjectPool_Lock
        - ObjectPool_Unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:68,2'
          Dst:             ObjectPool_Lock
        - Src:             'winpr/libwinpr/utils/collections/ObjectPool.c:82,2'
          Dst:             ObjectPool_Unlock
    - functionName:    StreamPool_ShiftUsed
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - discard_entry
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:148,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:157,4'
          Dst:             discard_entry
    - functionName:    discard_entry
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:66,3'
          Dst:             Stream_Free
    - functionName:    StreamPool_RemoveUsed
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          69
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - StreamPool_ShiftUsed
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:182,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:188,4'
          Dst:             StreamPool_ShiftUsed
    - functionName:    add_entry
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_backtrace
        - winpr_backtrace_free
        - winpr_backtrace_symbols
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:77,16'
          Dst:             winpr_backtrace
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:79,15'
          Dst:             winpr_backtrace_symbols
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:80,2'
          Dst:             winpr_backtrace_free
    - functionName:    StreamPool_WaitForReturn
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          127
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached:
        - Sleep
        - StreamPool_GetStatistics
        - StreamPool_UsedCount
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:516,23'
          Dst:             StreamPool_UsedCount
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:519,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:519,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:522,3'
          Dst:             StreamPool_GetStatistics
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:523,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:523,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:531,3'
          Dst:             Sleep
    - functionName:    StreamPool_UsedCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - StreamPool_Lock
        - StreamPool_Unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:394,2'
          Dst:             StreamPool_Lock
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:396,2'
          Dst:             StreamPool_Unlock
    - functionName:    StreamPool_GetStatistics
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          392
      EdgeCount:       81
      CyclomaticComplexity: 19
      functionsReached:
        - StreamPool_Lock
        - StreamPool_Unlock
        - snprintf
        - winpr_backtrace
        - winpr_backtrace_free
        - winpr_backtrace_symbols
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:453,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:459,15'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:467,2'
          Dst:             StreamPool_Lock
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:469,11'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:475,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:479,13'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:486,11'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:491,16'
          Dst:             winpr_backtrace
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:493,15'
          Dst:             winpr_backtrace_symbols
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:494,2'
          Dst:             winpr_backtrace_free
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:499,12'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:504,2'
          Dst:             StreamPool_Unlock
    - functionName:    StreamPool_Lock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 96
      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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:93,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:95,3'
          Dst:             EnterCriticalSection
    - functionName:    StreamPool_Unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 107
      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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:104,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:106,3'
          Dst:             LeaveCriticalSection
    - functionName:    StreamPool_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - DeleteCriticalSection
        - StreamPool_Clear
        - WLog_Discard
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:440,2'
          Dst:             StreamPool_Clear
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:442,2'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:447,2'
          Dst:             WLog_Discard
    - functionName:    StreamPool_Clear
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          117
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - StreamPool_Lock
        - StreamPool_Unlock
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - discard_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:367,2'
          Dst:             StreamPool_Lock
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:372,3'
          Dst:             discard_entry
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:378,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:378,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:384,4'
          Dst:             discard_entry
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:389,2'
          Dst:             StreamPool_Unlock
    - functionName:    StreamPool_EnsureCapacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          207
      EdgeCount:       45
      CyclomaticComplexity: 11
      functionsReached:
        - realloc
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:111,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:133,34'
          Dst:             realloc
    - functionName:    StreamPool_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - InitializeCriticalSectionAndSpinCount
        - StreamPool_EnsureCapacity
        - StreamPool_Free
        - WLog_Create
        - WLog_GetRoot
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:406,22'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:411,32'
          Dst:             WLog_GetRoot
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:411,14'
          Dst:             WLog_Create
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:418,7'
          Dst:             StreamPool_EnsureCapacity
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:420,7'
          Dst:             StreamPool_EnsureCapacity
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:423,7'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:430,2'
          Dst:             StreamPool_Free
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    StreamPool_Find
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          86
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - StreamPool_Lock
        - StreamPool_Unlock
        - Stream_Buffer
        - Stream_Capacity
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:342,2'
          Dst:             StreamPool_Lock
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:348,15'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:349,15'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:349,39'
          Dst:             Stream_Capacity
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:356,2'
          Dst:             StreamPool_Unlock
    - functionName:    Stream_Capacity
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1336
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1335,3'
          Dst:             winpr_int_assert
    - functionName:    StreamPool_ReleaseOrReturn
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - StreamPool_Lock
        - StreamPool_Remove
        - StreamPool_Unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:289,2'
          Dst:             StreamPool_Lock
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:290,2'
          Dst:             StreamPool_Remove
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:291,2'
          Dst:             StreamPool_Unlock
    - functionName:    StreamPool_Remove
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - StreamPool_EnsureCapacity
        - StreamPool_RemoveUsed
        - Stream_EnsureValidity
        - add_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:275,2'
          Dst:             StreamPool_EnsureCapacity
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:276,2'
          Dst:             Stream_EnsureValidity
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:283,34'
          Dst:             add_entry
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:284,2'
          Dst:             StreamPool_RemoveUsed
    - functionName:    Stream_Release
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          75
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - StreamPool_ReleaseOrReturn
        - Stream_Free
        - winpr_int_assert
      functionUses:    52
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:321,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:328,4'
          Dst:             StreamPool_ReleaseOrReturn
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:330,4'
          Dst:             Stream_Free
    - functionName:    Stream_AddRef
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      void
      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/libwinpr/utils/collections/StreamPool.c:311,2'
          Dst:             winpr_int_assert
    - functionName:    StreamPool_Return
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          45
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - StreamPool_Lock
        - StreamPool_Remove
        - StreamPool_Unlock
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:296,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:300,2'
          Dst:             StreamPool_Lock
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:301,2'
          Dst:             StreamPool_Remove
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:302,2'
          Dst:             StreamPool_Unlock
    - functionName:    StreamPool_AddUsed
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - StreamPool_EnsureCapacity
        - add_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:171,2'
          Dst:             StreamPool_EnsureCapacity
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:172,30'
          Dst:             add_entry
    - functionName:    StreamPool_ShiftAvailable
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - discard_entry
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:196,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:205,4'
          Dst:             discard_entry
    - functionName:    Stream_ResetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1358,3'
          Dst:             winpr_int_assert
    - functionName:    StreamPool_Take
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/StreamPool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          156
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - StreamPool_AddUsed
        - StreamPool_Lock
        - StreamPool_ShiftAvailable
        - StreamPool_Unlock
        - Stream_Capacity
        - Stream_New
        - Stream_ResetPosition
        - Stream_SetLength
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:224,2'
          Dst:             StreamPool_Lock
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:234,7'
          Dst:             Stream_Capacity
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:244,7'
          Dst:             Stream_New
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:250,3'
          Dst:             Stream_ResetPosition
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:251,28'
          Dst:             Stream_Capacity
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:251,8'
          Dst:             Stream_SetLength
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:253,3'
          Dst:             StreamPool_ShiftAvailable
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:260,3'
          Dst:             StreamPool_AddUsed
        - Src:             'winpr/libwinpr/utils/collections/StreamPool.c:264,2'
          Dst:             StreamPool_Unlock
    - functionName:    MessageQueue_Clear
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/MessageQueue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          146
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - ResetEvent
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:332,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:333,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:335,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:352,7'
          Dst:             ResetEvent
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:356,2'
          Dst:             LeaveCriticalSection
    - functionName:    MessageQueue_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/MessageQueue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - CloseHandle
        - DeleteCriticalSection
        - MessageQueue_Clear
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:319,3'
          Dst:             MessageQueue_Clear
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:321,8'
          Dst:             CloseHandle
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:322,2'
          Dst:             DeleteCriticalSection
    - functionName:    MessageQueue_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/MessageQueue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          81
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - CreateEventA
        - InitializeCriticalSectionAndSpinCount
        - MessageQueue_EnsureCapacity
        - MessageQueue_Free
        - calloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:286,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:290,7'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:293,7'
          Dst:             MessageQueue_EnsureCapacity
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:296,17'
          Dst:             CreateEventA
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:308,2'
          Dst:             MessageQueue_Free
    - functionName:    MessageQueue_EnsureCapacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/MessageQueue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          259
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - memmove_s
        - realloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:108,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:121,34'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:151,11'
          Dst:             memmove_s
    - functionName:    MessageQueue_Peek
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/MessageQueue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          119
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - ResetEvent
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:251,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:252,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:267,10'
          Dst:             ResetEvent
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:273,2'
          Dst:             LeaveCriticalSection
    - functionName:    MessageQueue_Get
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/MessageQueue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          109
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - MessageQueue_Wait
        - ResetEvent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:224,7'
          Dst:             MessageQueue_Wait
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:227,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:237,10'
          Dst:             ResetEvent
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:242,2'
          Dst:             LeaveCriticalSection
    - functionName:    MessageQueue_Wait
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/MessageQueue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          45
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - WaitForSingleObject
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:97,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:98,6'
          Dst:             WaitForSingleObject
    - functionName:    MessageQueue_PostQuit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/MessageQueue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - MessageQueue_Post
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:217,9'
          Dst:             MessageQueue_Post
    - functionName:    MessageQueue_Post
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/MessageQueue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - MessageQueue_Dispatch
      functionUses:    76
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:212,9'
          Dst:             MessageQueue_Dispatch
    - functionName:    MessageQueue_Dispatch
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/MessageQueue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          149
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - MessageQueue_EnsureCapacity
        - SetEvent
        - winpr_GetTickCount64
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:169,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:174,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:175,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:180,7'
          Dst:             MessageQueue_EnsureCapacity
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:185,14'
          Dst:             winpr_GetTickCount64
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:191,9'
          Dst:             SetEvent
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:198,2'
          Dst:             LeaveCriticalSection
    - functionName:    MessageQueue_Capacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/MessageQueue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:82,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:83,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:85,2'
          Dst:             LeaveCriticalSection
    - functionName:    MessageQueue_Size
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/MessageQueue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:73,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:74,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:76,2'
          Dst:             LeaveCriticalSection
    - functionName:    MessageQueue_Event
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/MessageQueue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 64
      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:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/MessageQueue.c:63,2'
          Dst:             winpr_int_assert
    - functionName:    MessageQueue_Object
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/MessageQueue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 54
      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/MessageQueue.c:53,2'
          Dst:             winpr_int_assert
    - 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:    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:    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:    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:    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:    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:    218
      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:    1243
      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:    167
      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:    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:    5
      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:    3
      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:    3
      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:    3
      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:    1
      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:    1076
      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:    2
      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:    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:    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:    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:    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: 1264
      functionLinenumberEnd: 1266
      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:1265,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:    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:    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:    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:    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: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,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:    5
      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: 1297
      functionLinenumberEnd: 1299
      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:1298,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:    6
      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:    12
      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:    5
      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:    6
      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: 1291
      functionLinenumberEnd: 1293
      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:1292,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:    6
      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:    2
      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:    5
      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:    1
      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:    1
      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:    5
      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:    8
      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:    1
      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:    6
      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:    6
      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: 1264
      functionLinenumberEnd: 1266
      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:1265,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:    14
      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:    7
      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:    19
      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:    1
      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:    7
      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:    9
      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:    7
      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:    6
      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:    4
      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:    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:    286
      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:    10
      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:    weekday2str
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 583
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       18
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/timezone/timezone.c:564,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    systemtime2str
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 599
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - memcmp
        - snprintf
        - weekday2str
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:589,6'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/timezone/timezone.c:590,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/timezone/timezone.c:596,49'
          Dst:             weekday2str
        - Src:             'winpr/libwinpr/timezone/timezone.c:593,9'
          Dst:             snprintf
    - functionName:    log_print
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 613
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:606,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/timezone/timezone.c:611,2'
          Dst:             WLog_PrintTextMessageVA
    - 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_read_unix_timezone_identifier_from_file
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          167
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - ferror
        - fread
        - realloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:59,8'
          Dst:             fread
        - Src:             'winpr/libwinpr/timezone/timezone.c:73,22'
          Dst:             realloc
        - Src:             'winpr/libwinpr/timezone/timezone.c:83,6'
          Dst:             ferror
    - functionName:    winpr_translate_time_zone
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_asprintf
        - winpr_get_timezone_from_link
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:309,3'
          Dst:             winpr_asprintf
        - Src:             'winpr/libwinpr/timezone/timezone.c:313,16'
          Dst:             winpr_get_timezone_from_link
    - functionName:    winpr_get_timezone_from_link
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          197
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - realpath
        - strlen
        - strncpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:120,15'
          Dst:             realpath
        - Src:             'winpr/libwinpr/timezone/timezone.c:127,23'
          Dst:             strlen
        - Src:             'winpr/libwinpr/timezone/timezone.c:148,18'
          Dst:             calloc
        - Src:             'winpr/libwinpr/timezone/timezone.c:153,4'
          Dst:             strncpy
        - Src:             'winpr/libwinpr/timezone/timezone.c:154,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    realpath
      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:    winpr_get_unix_timezone_identifier_from_file
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - fclose
        - winpr_fopen
        - winpr_read_unix_timezone_identifier_from_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:251,7'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/timezone/timezone.c:257,9'
          Dst:             winpr_read_unix_timezone_identifier_from_file
        - Src:             'winpr/libwinpr/timezone/timezone.c:258,8'
          Dst:             fclose
        - Src:             'winpr/libwinpr/timezone/timezone.c:260,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_time_zone_from_env
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         16
      ICount:          85
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - GetEnvironmentVariableA
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:270,16'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/timezone/timezone.c:273,17'
          Dst:             calloc
        - Src:             'winpr/libwinpr/timezone/timezone.c:276,8'
          Dst:             GetEnvironmentVariableA
    - functionName:    adjust_time
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 406
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - update_tm
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:412,9'
          Dst:             update_tm
    - functionName:    update_tm
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - localtime_r
        - mktime
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:386,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/timezone/timezone.c:388,19'
          Dst:             mktime
        - Src:             'winpr/libwinpr/timezone/timezone.c:390,8'
          Dst:             localtime_r
    - functionName:    mktime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    localtime_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    systemtime2tm
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          89
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_transition_weekday_occurrence
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          115
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - localtime_r
        - mktime
        - systemtime2tm
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:419,20'
          Dst:             systemtime2tm
        - Src:             'winpr/libwinpr/timezone/timezone.c:428,20'
          Dst:             mktime
        - Src:             'winpr/libwinpr/timezone/timezone.c:432,9'
          Dst:             localtime_r
    - functionName:    tm2systemtime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          68
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_transition_time
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 483
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          138
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - adjust_time
        - tm2transitiontime
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:467,20'
          Dst:             adjust_time
        - Src:             'winpr/libwinpr/timezone/timezone.c:470,19'
          Dst:             adjust_time
        - Src:             'winpr/libwinpr/timezone/timezone.c:477,12'
          Dst:             tm2transitiontime
        - Src:             'winpr/libwinpr/timezone/timezone.c:479,12'
          Dst:             tm2transitiontime
        - Src:             'winpr/libwinpr/timezone/timezone.c:482,9'
          Dst:             tm2transitiontime
    - functionName:    tm2transitiontime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - get_transition_weekday_occurrence
        - tm2systemtime
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:454,17'
          Dst:             tm2systemtime
        - Src:             'winpr/libwinpr/timezone/timezone.c:457,12'
          Dst:             get_transition_weekday_occurrence
    - functionName:    get_transition_date
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          205
      EdgeCount:       49
      CyclomaticComplexity: 11
      functionsReached:
        - get_transition_time
        - next_day
        - tm2transitiontime
        - update_tm
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:487,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/timezone/timezone.c:488,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/timezone/timezone.c:490,11'
          Dst:             tm2transitiontime
        - Src:             'winpr/libwinpr/timezone/timezone.c:492,20'
          Dst:             update_tm
        - Src:             'winpr/libwinpr/timezone/timezone.c:503,9'
          Dst:             next_day
        - Src:             'winpr/libwinpr/timezone/timezone.c:512,14'
          Dst:             get_transition_time
        - Src:             'winpr/libwinpr/timezone/timezone.c:517,14'
          Dst:             get_transition_time
    - functionName:    next_day
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - update_tm
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:402,9'
          Dst:             update_tm
    - functionName:    get_gmtoff_min
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:380,2'
          Dst:             winpr_int_assert
    - functionName:    GetDynamicTimeZoneInformationEffectiveYears
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 918
      functionLinenumberEnd: 922
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    restoreSavedTZ
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 959
      functionLinenumberEnd: 970
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - setenv
        - tzset
        - unsetenv
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:963,3'
          Dst:             setenv
        - Src:             'winpr/libwinpr/timezone/timezone.c:967,3'
          Dst:             unsetenv
        - Src:             'winpr/libwinpr/timezone/timezone.c:968,2'
          Dst:             tzset
    - functionName:    tzset
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setNewAndSaveOldTZ
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 946
      functionLinenumberEnd: 955
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _strdup
        - getenv
        - setenv
        - tzset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:948,20'
          Dst:             getenv
        - Src:             'winpr/libwinpr/timezone/timezone.c:951,11'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/timezone/timezone.c:952,2'
          Dst:             setenv
        - Src:             'winpr/libwinpr/timezone/timezone.c:953,2'
          Dst:             tzset
    - functionName:    EnumDynamicTimeZoneInformation
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 878
      functionLinenumberEnd: 912
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          161
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - ConvertUtf8ToWChar
        - TimeZoneGetAt
        - dynamic_time_zone_from_localtime
        - localtime_r
        - restoreSavedTZ
        - setNewAndSaveOldTZ
        - time
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:884,38'
          Dst:             TimeZoneGetAt
        - Src:             'winpr/libwinpr/timezone/timezone.c:889,9'
          Dst:             ConvertUtf8ToWChar
        - Src:             'winpr/libwinpr/timezone/timezone.c:892,9'
          Dst:             ConvertUtf8ToWChar
        - Src:             'winpr/libwinpr/timezone/timezone.c:895,9'
          Dst:             ConvertUtf8ToWChar
        - Src:             'winpr/libwinpr/timezone/timezone.c:898,19'
          Dst:             time
        - Src:             'winpr/libwinpr/timezone/timezone.c:901,31'
          Dst:             setNewAndSaveOldTZ
        - Src:             'winpr/libwinpr/timezone/timezone.c:903,26'
          Dst:             localtime_r
        - Src:             'winpr/libwinpr/timezone/timezone.c:906,3'
          Dst:             dynamic_time_zone_from_localtime
        - Src:             'winpr/libwinpr/timezone/timezone.c:909,3'
          Dst:             restoreSavedTZ
    - functionName:    dynamic_time_zone_from_localtime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 779
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          150
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - get_bias
        - get_transition_date
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:734,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/timezone/timezone.c:735,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/timezone/timezone.c:738,13'
          Dst:             get_bias
        - Src:             'winpr/libwinpr/timezone/timezone.c:744,18'
          Dst:             get_bias
        - Src:             'winpr/libwinpr/timezone/timezone.c:768,8'
          Dst:             get_transition_date
        - Src:             'winpr/libwinpr/timezone/timezone.c:773,8'
          Dst:             get_transition_date
    - functionName:    get_bias
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 526
      functionLinenumberEnd: 544
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          153
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - get_gmtoff_min
        - next_day
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:528,10'
          Dst:             get_gmtoff_min
        - Src:             'winpr/libwinpr/timezone/timezone.c:530,10'
          Dst:             get_gmtoff_min
        - Src:             'winpr/libwinpr/timezone/timezone.c:532,10'
          Dst:             get_gmtoff_min
        - Src:             'winpr/libwinpr/timezone/timezone.c:537,9'
          Dst:             next_day
        - Src:             'winpr/libwinpr/timezone/timezone.c:539,11'
          Dst:             get_gmtoff_min
        - Src:             'winpr/libwinpr/timezone/timezone.c:541,11'
          Dst:             get_gmtoff_min
    - functionName:    TzSpecificLocalTimeToSystemTimeEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 865
      functionLinenumberEnd: 869
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SystemTimeToTzSpecificLocalTimeEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 856
      functionLinenumberEnd: 860
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetTimeZoneInformationForYear
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 843
      functionLinenumberEnd: 847
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SetDynamicTimeZoneInformation
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 836
      functionLinenumberEnd: 838
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_timezone_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 618
      functionLinenumberEnd: 658
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          183
      EdgeCount:       25
      CyclomaticComplexity: 14
      functionsReached:
        - ConvertWCharNToUtf8
        - WLog_Get
        - log_print
        - systemtime2str
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/timezone/timezone.c:645,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:619,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/timezone/timezone.c:623,14'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/timezone/timezone.c:624,2'
          Dst:             log_print
        - Src:             'winpr/libwinpr/timezone/timezone.c:626,2'
          Dst:             log_print
        - Src:             'winpr/libwinpr/timezone/timezone.c:627,8'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/timezone/timezone.c:629,2'
          Dst:             log_print
        - Src:             'winpr/libwinpr/timezone/timezone.c:631,12'
          Dst:             systemtime2str
        - Src:             'winpr/libwinpr/timezone/timezone.c:630,2'
          Dst:             log_print
        - Src:             'winpr/libwinpr/timezone/timezone.c:632,2'
          Dst:             log_print
        - Src:             'winpr/libwinpr/timezone/timezone.c:634,8'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/timezone/timezone.c:636,2'
          Dst:             log_print
        - Src:             'winpr/libwinpr/timezone/timezone.c:638,12'
          Dst:             systemtime2str
        - Src:             'winpr/libwinpr/timezone/timezone.c:637,2'
          Dst:             log_print
        - Src:             'winpr/libwinpr/timezone/timezone.c:639,2'
          Dst:             log_print
        - Src:             'winpr/libwinpr/timezone/timezone.c:640,8'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/timezone/timezone.c:642,2'
          Dst:             log_print
        - Src:             'winpr/libwinpr/timezone/timezone.c:643,2'
          Dst:             log_print
        - Src:             'winpr/libwinpr/timezone/timezone.c:648,4'
          Dst:             log_print
        - Src:             'winpr/libwinpr/timezone/timezone.c:651,4'
          Dst:             log_print
        - Src:             'winpr/libwinpr/timezone/timezone.c:654,4'
          Dst:             log_print
        - Src:             'winpr/libwinpr/timezone/timezone.c:657,2'
          Dst:             log_print
    - functionName:    map_iana_id
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 547
      functionLinenumberEnd: 559
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          78
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertUtf8ToWChar
        - TimeZoneIanaToWindows
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:548,22'
          Dst:             TimeZoneIanaToWindows
        - Src:             'winpr/libwinpr/timezone/timezone.c:549,23'
          Dst:             TimeZoneIanaToWindows
        - Src:             'winpr/libwinpr/timezone/timezone.c:550,23'
          Dst:             TimeZoneIanaToWindows
        - Src:             'winpr/libwinpr/timezone/timezone.c:553,9'
          Dst:             ConvertUtf8ToWChar
        - Src:             'winpr/libwinpr/timezone/timezone.c:555,9'
          Dst:             ConvertUtf8ToWChar
        - Src:             'winpr/libwinpr/timezone/timezone.c:557,9'
          Dst:             ConvertUtf8ToWChar
    - functionName:    winpr_guess_time_zone
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          66
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_get_timezone_from_link
        - winpr_get_unix_timezone_identifier_from_file
        - winpr_time_zone_from_env
        - winpr_translate_time_zone
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:320,15'
          Dst:             winpr_time_zone_from_env
        - Src:             'winpr/libwinpr/timezone/timezone.c:323,9'
          Dst:             winpr_get_unix_timezone_identifier_from_file
        - Src:             'winpr/libwinpr/timezone/timezone.c:326,9'
          Dst:             winpr_get_timezone_from_link
        - Src:             'winpr/libwinpr/timezone/timezone.c:332,16'
          Dst:             winpr_translate_time_zone
    - functionName:    TzSpecificLocalTimeToSystemTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 707
      functionLinenumberEnd: 711
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SystemTimeToTzSpecificLocalTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 702
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FileTimeToSystemTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 693
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SystemTimeToFileTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 683
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SetTimeZoneInformation
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetDynamicTimeZoneInformation
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 783
      functionLinenumberEnd: 832
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          177
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - ConvertUtf8ToWChar
        - TimeZoneIanaAbbrevGet
        - calloc
        - dynamic_time_zone_from_localtime
        - get_bias
        - localtime_r
        - log_timezone_
        - map_iana_id
        - time
        - winpr_guess_time_zone
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:790,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/timezone/timezone.c:793,8'
          Dst:             ConvertUtf8ToWChar
        - Src:             'winpr/libwinpr/timezone/timezone.c:796,19'
          Dst:             time
        - Src:             'winpr/libwinpr/timezone/timezone.c:798,26'
          Dst:             localtime_r
        - Src:             'winpr/libwinpr/timezone/timezone.c:802,31'
          Dst:             get_bias
        - Src:             'winpr/libwinpr/timezone/timezone.c:804,3'
          Dst:             dynamic_time_zone_from_localtime
        - Src:             'winpr/libwinpr/timezone/timezone.c:806,9'
          Dst:             winpr_guess_time_zone
        - Src:             'winpr/libwinpr/timezone/timezone.c:807,7'
          Dst:             map_iana_id
        - Src:             'winpr/libwinpr/timezone/timezone.c:809,22'
          Dst:             TimeZoneIanaAbbrevGet
        - Src:             'winpr/libwinpr/timezone/timezone.c:810,24'
          Dst:             calloc
        - Src:             'winpr/libwinpr/timezone/timezone.c:813,23'
          Dst:             TimeZoneIanaAbbrevGet
        - Src:             'winpr/libwinpr/timezone/timezone.c:817,8'
          Dst:             map_iana_id
        - Src:             'winpr/libwinpr/timezone/timezone.c:831,2'
          Dst:             log_timezone_
    - functionName:    GetTimeZoneInformation
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/timezone.c'
      linkageType:     InternalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 673
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          54
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetDynamicTimeZoneInformation
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/timezone.c:663,13'
          Dst:             GetDynamicTimeZoneInformation
    - functionName:    append
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _strdup
        - realloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:50,6'
          Dst:             realloc
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:57,16'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:58,14'
          Dst:             _strdup
    - functionName:    get_link_target
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          102
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - readlink
        - realloc
        - topath
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:161,15'
          Dst:             topath
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:171,15'
          Dst:             realloc
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:178,8'
          Dst:             readlink
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:183,10'
          Dst:             topath
    - functionName:    topath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          155
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - _strdup
        - winpr_asprintf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:100,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:103,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:106,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:109,3'
          Dst:             winpr_asprintf
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:111,3'
          Dst:             winpr_asprintf
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:113,3'
          Dst:             winpr_asprintf
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:115,3'
          Dst:             winpr_asprintf
    - functionName:    append_timezone
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          84
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - append
        - localtime_r
        - restoreSavedTZ
        - setNewAndSaveOldTZ
        - time
        - winpr_asprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:69,3'
          Dst:             winpr_asprintf
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:74,3'
          Dst:             winpr_asprintf
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:79,16'
          Dst:             setNewAndSaveOldTZ
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:81,19'
          Dst:             time
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:83,8'
          Dst:             localtime_r
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:84,2'
          Dst:             append
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:85,2'
          Dst:             restoreSavedTZ
    - functionName:    handle_link
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - append_timezone
        - get_link_target
        - iterate_subdir_recursive
        - stat64
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:205,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:194,17'
          Dst:             get_link_target
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:198,19'
          Dst:             stat64
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:208,4'
          Dst:             iterate_subdir_recursive
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:211,4'
          Dst:             append_timezone
    - functionName:    iterate_subdir_recursive
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          118
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - append_timezone
        - closedir
        - handle_link
        - iterate_subdir_recursive
        - opendir
        - readdir64
        - strcmp
        - topath
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:132,4'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:121,15'
          Dst:             topath
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:125,11'
          Dst:             opendir
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:130,16'
          Dst:             readdir64
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:136,10'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:138,10'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:140,6'
          Dst:             iterate_subdir_recursive
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:144,6'
          Dst:             handle_link
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:147,6'
          Dst:             append_timezone
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:153,3'
          Dst:             closedir
    - functionName:    TimeZoneIanaAbbrevCleanup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          55
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    TimeZoneIanaAbbrevInitialize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - TimeZoneIanaAbbrevCleanup
        - iterate_subdir_recursive
        - winpr_atexit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:238,2'
          Dst:             iterate_subdir_recursive
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:239,8'
          Dst:             winpr_atexit
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:239,8'
          Dst:             TimeZoneIanaAbbrevCleanup
    - functionName:    TimeZoneIanaAbbrevGet
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          93
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - TimeZoneIanaAbbrevInitialize
        - strcmp
        - winpr_InitOnceExecuteOnce
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:248,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:248,7'
          Dst:             TimeZoneIanaAbbrevInitialize
        - Src:             'winpr/libwinpr/timezone/TimeZoneIanaAbbrevMap.c:255,7'
          Dst:             strcmp
    - functionName:    IsProcessorFeaturePresentEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1088
      functionLinenumberEnd: 1302
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         67
      ICount:          285
      EdgeCount:       77
      CyclomaticComplexity: 12
      functionsReached:
        - cpuid
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1136,2'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1198,5'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1207,7'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1134,2'
          Dst:             cpuid
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1144,4'
          Dst:             cpuid
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1206,7'
          Dst:             cpuid
    - functionName:    cpuid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 692
      functionLinenumberEnd: 718
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      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: 1075
      functionLinenumberEnd: 1083
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetTickCount
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1083,9'
          Dst:             GetTickCount
    - functionName:    GetTickCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetTickCount64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:336,16'
          Dst:             winpr_GetTickCount64
    - functionName:    winpr_GetTickCount64
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetTickCount64NS
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:577,20'
          Dst:             winpr_GetTickCount64NS
    - functionName:    winpr_GetTickCount64NS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 584
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         48
      ICount:          167
      EdgeCount:       55
      CyclomaticComplexity: 9
      functionsReached:
        - clock_gettime
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:589,6'
          Dst:             clock_gettime
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
          Dst:             winpr_int_assert
    - functionName:    clock_gettime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    IsProcessorFeaturePresent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 791
      functionLinenumberEnd: 1069
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          176
      EdgeCount:       32
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - cpuid
      functionUses:    27
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:981,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:979,2'
          Dst:             cpuid
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1035,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 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: 532
      functionLinenumberEnd: 560
      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:538,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:544,15'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:550,7'
          Dst:             GetComputerNameExA
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:554,23'
          Dst:             ConvertUtf8NToWChar
    - functionName:    GetComputerNameExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          168
      EdgeCount:       40
      CyclomaticComplexity: 9
      functionsReached:
        - GetComputerNameA
        - GetLastError
        - SetLastError
        - gethostname
        - strnlen
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:504,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:482,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:488,13'
          Dst:             GetComputerNameA
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:492,8'
          Dst:             GetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:493,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:499,6'
          Dst:             gethostname
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:502,11'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:515,5'
          Dst:             SetLastError
    - functionName:    GetComputerNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      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:445,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:450,6'
          Dst:             gethostname
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:453,18'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:454,20'
          Dst:             strchr
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:464,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:469,2'
          Dst:             strncpy
    - functionName:    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:    GetComputerNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          111
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - ConvertUtf8NToWChar
        - GetComputerNameA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:428,7'
          Dst:             GetComputerNameA
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:432,23'
          Dst:             ConvertUtf8NToWChar
    - functionName:    GetSystemTimeAdjustment
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:326,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetSystemTimeAsFileTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetUnixTimeNS
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:317,11'
          Dst:             winpr_GetUnixTimeNS
    - functionName:    winpr_GetUnixTimeNS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         48
      ICount:          167
      EdgeCount:       55
      CyclomaticComplexity: 9
      functionsReached:
        - clock_gettime
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:642,6'
          Dst:             clock_gettime
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
          Dst:             winpr_int_assert
    - functionName:    SetLocalTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:305,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetLocalTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          102
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - localtime_r
        - winpr_GetUnixTimeNS
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:283,15'
          Dst:             winpr_GetUnixTimeNS
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:286,8'
          Dst:             localtime_r
    - functionName:    SetSystemTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:273,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetSystemTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          102
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - gmtime_r
        - winpr_GetUnixTimeNS
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:251,15'
          Dst:             winpr_GetUnixTimeNS
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:254,8'
          Dst:             gmtime_r
    - functionName:    gmtime_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetNativeSystemInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetSystemInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:242,2'
          Dst:             GetSystemInfo
    - functionName:    GetSystemInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - GetNumberOfProcessors
        - GetProcessorArchitecture
        - GetSystemPageSize
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:231,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:235,6'
          Dst:             GetProcessorArchitecture
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:236,29'
          Dst:             GetSystemPageSize
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:237,39'
          Dst:             GetNumberOfProcessors
    - functionName:    GetProcessorArchitecture
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      short
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetSystemPageSize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          72
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - sysconf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:209,18'
          Dst:             sysconf
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:215,18'
          Dst:             sysconf
    - functionName:    GetNumberOfProcessors
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sysconf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:171,19'
          Dst:             sysconf
    - 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:    winpr_WaitForThreadpoolWorkCallbacks
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pool/work.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          83
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - CountdownEvent_WaitHandle
        - WLog_Print_dbg_tag
        - WaitForSingleObject
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pool/work.c:194,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pool/work.c:195,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pool/work.c:198,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pool/work.c:200,10'
          Dst:             CountdownEvent_WaitHandle
        - Src:             'winpr/libwinpr/pool/work.c:202,6'
          Dst:             WaitForSingleObject
        - Src:             'winpr/libwinpr/pool/work.c:203,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:    winpr_TrySubmitThreadpoolCallback
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pool/work.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 174
      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/pool/work.c:173,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_SubmitThreadpoolWork
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pool/work.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          85
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - CountdownEvent_AddCount
        - Queue_Enqueue
        - calloc
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pool/work.c:146,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pool/work.c:147,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pool/work.c:149,44'
          Dst:             calloc
        - Src:             'winpr/libwinpr/pool/work.c:154,3'
          Dst:             CountdownEvent_AddCount
        - Src:             'winpr/libwinpr/pool/work.c:155,8'
          Dst:             Queue_Enqueue
    - functionName:    winpr_CloseThreadpoolWork
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pool/work.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          65
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - ArrayList_Remove
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pool/work.c:121,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pool/work.c:122,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pool/work.c:124,3'
          Dst:             ArrayList_Remove
    - functionName:    winpr_CreateThreadpoolWork
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pool/work.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          78
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ArrayList_Append
        - GetDefaultThreadpool
        - calloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pool/work.c:83,19'
          Dst:             calloc
        - Src:             'winpr/libwinpr/pool/work.c:90,17'
          Dst:             GetDefaultThreadpool
        - Src:             'winpr/libwinpr/pool/work.c:99,4'
          Dst:             ArrayList_Append
    - functionName:    threads_close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pool/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - CloseHandle
        - WaitForSingleObject
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pool/pool.c:103,8'
          Dst:             WaitForSingleObject
        - Src:             'winpr/libwinpr/pool/pool.c:104,8'
          Dst:             CloseHandle
    - functionName:    winpr_SetThreadpoolThreadMaximum
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pool/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          63
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ArrayList_Clear
        - ArrayList_Count
        - ArrayList_Lock
        - ArrayList_Unlock
        - ResetEvent
        - SetEvent
        - winpr_SetThreadpoolThreadMinimum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pool/pool.c:267,2'
          Dst:             ArrayList_Lock
        - Src:             'winpr/libwinpr/pool/pool.c:268,6'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/pool/pool.c:270,9'
          Dst:             SetEvent
        - Src:             'winpr/libwinpr/pool/pool.c:271,3'
          Dst:             ArrayList_Clear
        - Src:             'winpr/libwinpr/pool/pool.c:272,9'
          Dst:             ResetEvent
        - Src:             'winpr/libwinpr/pool/pool.c:274,2'
          Dst:             ArrayList_Unlock
        - Src:             'winpr/libwinpr/pool/pool.c:275,2'
          Dst:             winpr_SetThreadpoolThreadMinimum
    - functionName:    winpr_SetThreadpoolThreadMinimum
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pool/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          75
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ArrayList_Append
        - ArrayList_Count
        - ArrayList_Lock
        - ArrayList_Unlock
        - CloseHandle
        - CreateThread
        - thread_pool_work_func
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pool/pool.c:233,2'
          Dst:             ArrayList_Lock
        - Src:             'winpr/libwinpr/pool/pool.c:234,9'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/pool/pool.c:236,19'
          Dst:             CreateThread
        - Src:             'winpr/libwinpr/pool/pool.c:236,19'
          Dst:             thread_pool_work_func
        - Src:             'winpr/libwinpr/pool/pool.c:240,8'
          Dst:             ArrayList_Append
        - Src:             'winpr/libwinpr/pool/pool.c:242,10'
          Dst:             CloseHandle
        - Src:             'winpr/libwinpr/pool/pool.c:249,2'
          Dst:             ArrayList_Unlock
    - functionName:    thread_pool_work_func
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pool/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          96
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - CountdownEvent_Signal
        - ExitThread
        - Queue_Dequeue
        - Queue_Event
        - WaitForMultipleObjects
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pool/pool.c:74,14'
          Dst:             Queue_Event
        - Src:             'winpr/libwinpr/pool/pool.c:78,12'
          Dst:             WaitForMultipleObjects
        - Src:             'winpr/libwinpr/pool/pool.c:86,45'
          Dst:             Queue_Dequeue
        - Src:             'winpr/libwinpr/pool/pool.c:92,4'
          Dst:             CountdownEvent_Signal
        - Src:             'winpr/libwinpr/pool/pool.c:97,2'
          Dst:             ExitThread
    - functionName:    winpr_CloseThreadpool
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pool/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ArrayList_Free
        - CloseHandle
        - CountdownEvent_Free
        - Queue_Free
        - SetEvent
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pool/pool.c:206,8'
          Dst:             SetEvent
        - Src:             'winpr/libwinpr/pool/pool.c:208,2'
          Dst:             ArrayList_Free
        - Src:             'winpr/libwinpr/pool/pool.c:209,2'
          Dst:             Queue_Free
        - Src:             'winpr/libwinpr/pool/pool.c:210,2'
          Dst:             CountdownEvent_Free
        - Src:             'winpr/libwinpr/pool/pool.c:211,8'
          Dst:             CloseHandle
    - functionName:    winpr_CreateThreadpool
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pool/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - InitializeThreadpool
        - calloc
        - winpr_CloseThreadpool
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pool/pool.c:183,25'
          Dst:             calloc
        - Src:             'winpr/libwinpr/pool/pool.c:186,7'
          Dst:             InitializeThreadpool
        - Src:             'winpr/libwinpr/pool/pool.c:188,3'
          Dst:             winpr_CloseThreadpool
    - functionName:    InitializeThreadpool
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pool/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          152
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - ArrayList_New
        - ArrayList_Object
        - CountdownEvent_New
        - CreateEventA
        - GetSystemInfo
        - Queue_New
        - winpr_SetThreadpoolThreadMaximum
        - winpr_SetThreadpoolThreadMinimum
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pool/pool.c:115,29'
          Dst:             Queue_New
        - Src:             'winpr/libwinpr/pool/pool.c:118,29'
          Dst:             CountdownEvent_New
        - Src:             'winpr/libwinpr/pool/pool.c:121,31'
          Dst:             CreateEventA
        - Src:             'winpr/libwinpr/pool/pool.c:124,24'
          Dst:             ArrayList_New
        - Src:             'winpr/libwinpr/pool/pool.c:127,8'
          Dst:             ArrayList_Object
        - Src:             'winpr/libwinpr/pool/pool.c:139,3'
          Dst:             GetSystemInfo
        - Src:             'winpr/libwinpr/pool/pool.c:150,8'
          Dst:             winpr_SetThreadpoolThreadMinimum
        - Src:             'winpr/libwinpr/pool/pool.c:153,3'
          Dst:             winpr_SetThreadpoolThreadMaximum
    - functionName:    GetDefaultThreadpool
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pool/pool.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - InitializeThreadpool
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pool/pool.c:166,7'
          Dst:             InitializeThreadpool
    - functionName:    SetHandleInformation
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/handle.c:83,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 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:    GetHandleInformation
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/handle.c:76,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    DuplicateHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/../synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 166
      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:    CloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_Handle_GetInfo
      functionUses:    27
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/handle.c:48,7'
          Dst:             winpr_Handle_GetInfo
    - 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:    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:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 135
      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:130,3'
          Dst:             SetLastError
    - functionName:    ProcessCleanupHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 646
      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:633,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/process.c:636,7'
          Dst:             waitpid
    - functionName:    ProcessGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 627
      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:623,7'
          Dst:             ProcessHandleIsHandle
    - functionName:    ProcessHandleIsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 616
      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:616,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    pidfd_open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 672
      functionLinenumberEnd: 705
      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:682,12'
          Dst:             syscall
        - Src:             'winpr/libwinpr/thread/process.c:683,16'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/thread/process.c:688,8'
          Dst:             syscall
        - Src:             'winpr/libwinpr/thread/process.c:692,11'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/thread/process.c:693,22'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/thread/process.c:695,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:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 166
      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: 602
      functionLinenumberEnd: 611
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          51
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - close
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:604,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/process.c:607,3'
          Dst:             close
    - functionName:    CreateProcessHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 708
      functionLinenumberEnd: 722
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - pidfd_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:710,28'
          Dst:             calloc
        - Src:             'winpr/libwinpr/thread/process.c:718,16'
          Dst:             pidfd_open
    - functionName:    winpr_Handle_getFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 181
      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/thread/../handle/handle.h:174,7'
          Dst:             winpr_Handle_GetInfo
    - functionName:    FindApplicationPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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:112,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/thread/process.c:114,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/thread/process.c:117,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/thread/process.c:124,6'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/thread/process.c:131,9'
          Dst:             strtok_s
        - Src:             'winpr/libwinpr/thread/process.c:135,14'
          Dst:             GetCombinedPath
        - Src:             'winpr/libwinpr/thread/process.c:137,7'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/thread/process.c:144,10'
          Dst:             strtok_s
    - functionName:    TerminateProcess
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 599
      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:595,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: 583
      functionLinenumberEnd: 584
      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:584,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: 577
      functionLinenumberEnd: 579
      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:578,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: 562
      functionLinenumberEnd: 574
      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: 550
      functionLinenumberEnd: 552
      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:551,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateProcessWithTokenA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 539
      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:537,9'
          Dst:             CreateProcessExA
    - functionName:    CreateProcessExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 381
      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:         96
      ICount:          569
      EdgeCount:       129
      CyclomaticComplexity: 35
      functionsReached:
        - CommandLineToArgvA
        - CreateNoneHandle
        - CreateProcessHandle
        - EnvironmentBlockToEnvpA
        - FindApplicationPath
        - FreeEnvironmentStringsA
        - GetEnvironmentStrings
        - ProcessHandleCloseHandle
        - _exit
        - chdir
        - close
        - dup2
        - execve
        - fork
        - initgroups
        - pthread_sigmask
        - setgid
        - setuid
        - sigaction
        - sigemptyset
        - sigfillset
        - strlen
        - sysconf
        - winpr_Handle_getFd
        - 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:224,2'
          Dst:             sigfillset
        - Src:             'winpr/libwinpr/thread/process.c:225,20'
          Dst:             pthread_sigmask
        - Src:             'winpr/libwinpr/thread/process.c:227,8'
          Dst:             fork
        - Src:             'winpr/libwinpr/thread/process.c:246,3'
          Dst:             sigemptyset
        - Src:             'winpr/libwinpr/thread/process.c:249,4'
          Dst:             sigaction
        - Src:             'winpr/libwinpr/thread/process.c:252,3'
          Dst:             sigfillset
        - Src:             'winpr/libwinpr/thread/process.c:253,3'
          Dst:             pthread_sigmask
        - Src:             'winpr/libwinpr/thread/process.c:258,16'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/thread/process.c:261,5'
          Dst:             dup2
        - Src:             'winpr/libwinpr/thread/process.c:263,16'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/thread/process.c:266,5'
          Dst:             dup2
        - Src:             'winpr/libwinpr/thread/process.c:268,16'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/thread/process.c:271,5'
          Dst:             dup2
        - Src:             'winpr/libwinpr/thread/process.c:281,20'
          Dst:             sysconf
        - Src:             'winpr/libwinpr/thread/process.c:289,4'
          Dst:             close
        - Src:             'winpr/libwinpr/thread/process.c:297,14'
          Dst:             setgid
        - Src:             'winpr/libwinpr/thread/process.c:304,6'
          Dst:             initgroups
        - Src:             'winpr/libwinpr/thread/process.c:310,14'
          Dst:             setuid
        - Src:             'winpr/libwinpr/thread/process.c:317,29'
          Dst:             strlen
        - Src:             'winpr/libwinpr/thread/process.c:319,13'
          Dst:             chdir
        - Src:             'winpr/libwinpr/thread/process.c:324,7'
          Dst:             execve
        - Src:             'winpr/libwinpr/thread/process.c:327,4'
          Dst:             _exit
        - Src:             'winpr/libwinpr/thread/process.c:335,12'
          Dst:             CreateProcessHandle
        - Src:             'winpr/libwinpr/thread/process.c:342,11'
          Dst:             CreateNoneHandle
        - Src:             'winpr/libwinpr/thread/process.c:346,3'
          Dst:             ProcessHandleCloseHandle
        - Src:             'winpr/libwinpr/thread/process.c:359,3'
          Dst:             pthread_sigmask
        - Src:             'winpr/libwinpr/thread/process.c:365,3'
          Dst:             FreeEnvironmentStringsA
    - 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:    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:    setgid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    initgroups
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setuid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    chdir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    execve
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _exit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateProcessWithLogonW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 526
      functionLinenumberEnd: 528
      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:527,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateProcessWithLogonA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 514
      functionLinenumberEnd: 516
      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:515,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateProcessAsUserW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 504
      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:503,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateProcessAsUserA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 488
      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:486,9'
          Dst:             CreateProcessExA
    - functionName:    CreateProcessW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 477
      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:404,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/process.c:405,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/process.c:432,24'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/thread/process.c:438,20'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/thread/process.c:444,25'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/thread/process.c:450,29'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/thread/process.c:456,28'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/thread/process.c:462,26'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/thread/process.c:467,7'
          Dst:             CreateProcessA
    - functionName:    CreateProcessA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 391
      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:389,9'
          Dst:             CreateProcessExA
    - functionName:    mux_condition_bundle_uninit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 240
      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:235,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:237,2'
          Dst:             run_cond_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:237,2'
          Dst:             pthread_cond_destroy
        - Src:             'winpr/libwinpr/thread/thread.c:238,2'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:238,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: 196
      functionLinenumberEnd: 208
      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:199,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:200,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:206,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:206,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    run_mutex_fkt_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 172
      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:163,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:164,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:170,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:170,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: 243
      functionLinenumberEnd: 255
      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:245,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:247,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:247,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:250,7'
          Dst:             run_cond_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:250,7'
          Dst:             pthread_cond_signal
        - Src:             'winpr/libwinpr/thread/thread.c:252,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:252,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: 212
      functionLinenumberEnd: 215
      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:213,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:214,2'
          Dst:             pthread_mutex_trylock
        - Src:             'winpr/libwinpr/thread/thread.c:214,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:215,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: 306
      functionLinenumberEnd: 309
      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:307,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:309,9'
          Dst:             mux_condition_bundle_signal
    - functionName:    signal_and_wait_for_ready
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 498
      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:472,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:474,7'
          Dst:             mux_condition_bundle_lock
        - Src:             'winpr/libwinpr/thread/thread.c:477,7'
          Dst:             signal_thread_ready
        - Src:             'winpr/libwinpr/thread/thread.c:480,7'
          Dst:             mux_condition_bundle_wait
        - Src:             'winpr/libwinpr/thread/thread.c:494,7'
          Dst:             mux_condition_bundle_unlock
    - functionName:    mux_condition_bundle_lock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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:259,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:260,9'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:260,9'
          Dst:             pthread_mutex_lock
    - functionName:    mux_condition_bundle_wait
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 302
      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:285,4'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:273,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:274,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:275,2'
          Dst:             pthread_mutex_trylock
        - Src:             'winpr/libwinpr/thread/thread.c:275,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:279,11'
          Dst:             pthread_cond_wait
        - Src:             'winpr/libwinpr/thread/thread.c:283,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:283,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    mux_condition_bundle_unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 266
      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:265,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:266,9'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:266,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: 313
      functionLinenumberEnd: 316
      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:314,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:316,9'
          Dst:             mux_condition_bundle_signal
    - functionName:    thread_launcher
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 504
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          136
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - TlsSetValue
        - WLog_Print_dbg_tag
        - apc_cleanupThread
        - cleanup_handle
        - pthread_self
        - set_event
        - signal_and_wait_for_ready
        - signal_thread_ready
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:511,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:515,7'
          Dst:             TlsSetValue
        - Src:             'winpr/libwinpr/thread/thread.c:517,3'
          Dst:             pthread_self
        - Src:             'winpr/libwinpr/thread/thread.c:517,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:530,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:534,7'
          Dst:             signal_and_wait_for_ready
        - Src:             'winpr/libwinpr/thread/thread.c:542,3'
          Dst:             apc_cleanupThread
        - Src:             'winpr/libwinpr/thread/thread.c:547,3'
          Dst:             set_event
        - Src:             'winpr/libwinpr/thread/thread.c:549,9'
          Dst:             signal_thread_ready
        - Src:             'winpr/libwinpr/thread/thread.c:552,4'
          Dst:             cleanup_handle
    - functionName:    pthread_self
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_event
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 411
      functionLinenumberEnd: 412
      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:412,9'
          Dst:             winpr_event_set
    - functionName:    cleanup_handle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 768
      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:746,7'
          Dst:             apc_uninit
        - Src:             'winpr/libwinpr/thread/thread.c:747,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:749,2'
          Dst:             mux_condition_bundle_uninit
        - Src:             'winpr/libwinpr/thread/thread.c:750,2'
          Dst:             mux_condition_bundle_uninit
        - Src:             'winpr/libwinpr/thread/thread.c:751,2'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:751,2'
          Dst:             pthread_mutex_destroy
        - Src:             'winpr/libwinpr/thread/thread.c:753,2'
          Dst:             winpr_event_uninit
    - functionName:    reset_event
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      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:417,9'
          Dst:             winpr_event_reset
    - functionName:    run_cond_init_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 190
      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:181,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:182,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:188,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:188,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    dump_thread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 404
      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: 118
      functionLinenumberEnd: 135
      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:130,3'
          Dst:             SetLastError
    - functionName:    ThreadCleanupHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 352
      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:324,7'
          Dst:             ThreadIsHandled
        - Src:             'winpr/libwinpr/thread/thread.c:327,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:327,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:332,12'
          Dst:             pthread_join
        - Src:             'winpr/libwinpr/thread/thread.c:337,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:337,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:348,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:348,7'
          Dst:             pthread_mutex_checked_unlock
    - functionName:    ThreadIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 125
      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:125,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: 129
      functionLinenumberEnd: 136
      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:132,7'
          Dst:             ThreadIsHandled
    - functionName:    ThreadCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 771
      functionLinenumberEnd: 807
      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:789,3'
          Dst:             dump_thread
        - Src:             'winpr/libwinpr/thread/thread.c:791,29'
          Dst:             WaitForSingleObject
        - Src:             'winpr/libwinpr/thread/thread.c:793,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:795,4'
          Dst:             pthread_detach
        - Src:             'winpr/libwinpr/thread/thread.c:799,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: 1059
      functionLinenumberEnd: 1124
      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: 1030
      functionLinenumberEnd: 1056
      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:1035,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:1042,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:1042,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:1046,2'
          Dst:             pthread_cancel
        - Src:             'winpr/libwinpr/thread/thread.c:1051,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:1051,7'
          Dst:             pthread_mutex_checked_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:1054,2'
          Dst:             set_event
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 166
      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: 1018
      functionLinenumberEnd: 1026
      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:1023,6'
          Dst:             sched_yield
        - Src:             'winpr/libwinpr/thread/thread.c:1024,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: 1011
      functionLinenumberEnd: 1014
      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:1012,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:1013,2'
          Dst:             SetLastError
    - functionName:    ResumeThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 976
      functionLinenumberEnd: 1008
      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:981,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:983,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:984,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/thread/thread.c:990,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:990,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:995,8'
          Dst:             winpr_StartThread
        - Src:             'winpr/libwinpr/thread/thread.c:997,4'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:997,4'
          Dst:             pthread_mutex_checked_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:1002,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:1004,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:1004,7'
          Dst:             pthread_mutex_checked_unlock
    - functionName:    winpr_StartThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 615
      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:564,7'
          Dst:             mux_condition_bundle_lock
        - Src:             'winpr/libwinpr/thread/thread.c:568,2'
          Dst:             pthread_attr_init
        - Src:             'winpr/libwinpr/thread/thread.c:569,2'
          Dst:             pthread_attr_setdetachstate
        - Src:             'winpr/libwinpr/thread/thread.c:572,3'
          Dst:             pthread_attr_setstacksize
        - Src:             'winpr/libwinpr/thread/thread.c:575,2'
          Dst:             reset_event
        - Src:             'winpr/libwinpr/thread/thread.c:585,6'
          Dst:             pthread_create
        - Src:             'winpr/libwinpr/thread/thread.c:585,6'
          Dst:             thread_launcher
        - Src:             'winpr/libwinpr/thread/thread.c:588,7'
          Dst:             mux_condition_bundle_wait
        - Src:             'winpr/libwinpr/thread/thread.c:592,7'
          Dst:             mux_condition_bundle_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:595,7'
          Dst:             signal_thread_is_running
        - Src:             'winpr/libwinpr/thread/thread.c:597,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:605,8'
          Dst:             mux_condition_bundle_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:609,2'
          Dst:             pthread_attr_destroy
        - Src:             'winpr/libwinpr/thread/thread.c:612,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: 931
      functionLinenumberEnd: 937
      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: 940
      functionLinenumberEnd: 973
      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:949,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:951,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:952,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/thread/thread.c:956,12'
          Dst:             calloc
        - Src:             'winpr/libwinpr/thread/thread.c:959,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/thread/thread.c:971,2'
          Dst:             apc_register
    - functionName:    GetCurrentThreadId
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 907
      functionLinenumberEnd: 913
      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:913,9'
          Dst:             syscall
    - functionName:    _GetCurrentThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 902
      functionLinenumberEnd: 903
      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:903,17'
          Dst:             winpr_GetCurrentThread
    - functionName:    winpr_GetCurrentThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 889
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - TlsGetValue
        - initializeThreads
        - pthread_self
        - winpr_InitOnceExecuteOnce
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:892,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/thread/thread.c:892,7'
          Dst:             initializeThreads
        - Src:             'winpr/libwinpr/thread/thread.c:894,22'
          Dst:             pthread_self
        - Src:             'winpr/libwinpr/thread/thread.c:897,8'
          Dst:             TlsGetValue
    - functionName:    initializeThreads
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - TlsAlloc
        - WLog_Print_dbg_tag
        - apc_init
        - pthread_self
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:437,7'
          Dst:             apc_init
        - Src:             'winpr/libwinpr/thread/thread.c:439,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:444,17'
          Dst:             pthread_self
        - Src:             'winpr/libwinpr/thread/thread.c:446,26'
          Dst:             TlsAlloc
        - Src:             'winpr/libwinpr/thread/thread.c:449,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetExitCodeThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 871
      functionLinenumberEnd: 886
      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:876,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:878,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:879,3'
          Dst:             SetLastError
    - functionName:    ExitThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 824
      functionLinenumberEnd: 868
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateRemoteThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 817
      functionLinenumberEnd: 820
      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:818,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:819,2'
          Dst:             SetLastError
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          21
      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: 219
      functionLinenumberEnd: 229
      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:220,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:223,7'
          Dst:             run_mutex_init_
        - Src:             'winpr/libwinpr/thread/thread.c:223,7'
          Dst:             pthread_mutex_init
        - Src:             'winpr/libwinpr/thread/thread.c:226,7'
          Dst:             run_cond_init_
        - Src:             'winpr/libwinpr/thread/thread.c:226,7'
          Dst:             pthread_cond_init
    - functionName:    run_mutex_init_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 154
      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:145,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:146,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:152,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:152,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: 677
      functionLinenumberEnd: 738
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:679,40'
          Dst:             calloc
        - Src:             'winpr/libwinpr/thread/thread.c:694,7'
          Dst:             winpr_event_init
        - Src:             'winpr/libwinpr/thread/thread.c:696,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:700,7'
          Dst:             run_mutex_init_
        - Src:             'winpr/libwinpr/thread/thread.c:700,7'
          Dst:             pthread_mutex_init
        - Src:             'winpr/libwinpr/thread/thread.c:702,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:706,7'
          Dst:             apc_init
        - Src:             'winpr/libwinpr/thread/thread.c:708,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:712,7'
          Dst:             mux_condition_bundle_init
        - Src:             'winpr/libwinpr/thread/thread.c:714,7'
          Dst:             mux_condition_bundle_init
        - Src:             'winpr/libwinpr/thread/thread.c:717,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/thread/thread.c:720,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/thread/thread.c:720,7'
          Dst:             initializeThreads
        - Src:             'winpr/libwinpr/thread/thread.c:725,8'
          Dst:             winpr_StartThread
        - Src:             'winpr/libwinpr/thread/thread.c:730,8'
          Dst:             set_event
        - Src:             'winpr/libwinpr/thread/thread.c:736,2'
          Dst:             cleanup_handle
    - functionName:    SetThreadPriority
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 618
      functionLinenumberEnd: 672
      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:632,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:622,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:659,17'
          Dst:             pthread_setschedprio
        - Src:             'winpr/libwinpr/thread/thread.c:663,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:663,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    pthread_setschedprio
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    TlsFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_key_delete
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/tls.c:64,2'
          Dst:             pthread_key_delete
    - functionName:    pthread_key_delete
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    TlsSetValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_setspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/tls.c:57,2'
          Dst:             pthread_setspecific
    - 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:    TlsGetValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/tls.c:51,17'
          Dst:             pthread_getspecific
    - functionName:    pthread_getspecific
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    TlsAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         29
      ICount:          105
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - pthread_key_create
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/tls.c:41,6'
          Dst:             pthread_key_create
        - Src:             'winpr/libwinpr/thread/tls.c:45,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/tls.c:45,9'
          Dst:             winpr_int_assert
    - 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:    _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:    _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:    1
      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:    _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:    2
      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:    2
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _listen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1128
      functionLinenumberEnd: 1132
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      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:    _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:    _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:    _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:    _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:    _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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1041,11'
          Dst:             connect
    - 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:    11
      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:    _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:    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:    8
      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:    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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1241,7'
          Dst:             socket
    - 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:    2
      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:    4
      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:    2
      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:    2
      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:    9
      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:    winpr_SetCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1480
      functionLinenumberEnd: 1500
      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
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1481,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1486,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1493,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1499,9'
          Dst:             log_status_
    - functionName:    sspi_SecureHandleGetUpperPointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    27
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_GetSecurityFunctionTableAByNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 999
      functionLinenumberEnd: 1011
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1004,7'
          Dst:             strcmp
    - 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:    log_status_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1245
      functionLinenumberEnd: 1260
      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:1246,6'
          Dst:             IsSecurityStatusError
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1251,10'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1253,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1256,32'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1255,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    winpr_SetContextAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1782
      functionLinenumberEnd: 1802
      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
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1783,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1788,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1795,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1801,9'
          Dst:             log_status_
    - functionName:    winpr_ImportSecurityContextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1384
      functionLinenumberEnd: 1404
      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
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1385,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1390,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1397,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1403,9'
          Dst:             log_status_
    - functionName:    winpr_QuerySecurityPackageInfoA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1194
      functionLinenumberEnd: 1228
      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:1199,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1203,22'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1212,25'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1213,28'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1217,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: 1047
      functionLinenumberEnd: 1074
      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:1060,4'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1063,6'
          Dst:             FreeContextBuffer_EnumerateSecurityPackages
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1067,6'
          Dst:             FreeContextBuffer_QuerySecurityPackageInfo
    - functionName:    FreeContextBuffer_EnumerateSecurityPackages
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1145
      functionLinenumberEnd: 1159
      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: 1231
      functionLinenumberEnd: 1240
      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: 1710
      functionLinenumberEnd: 1729
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1711,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1716,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1723,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1728,9'
          Dst:             log_status_
    - functionName:    winpr_InitializeSecurityContextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1661
      functionLinenumberEnd: 1683
      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:         10
      ICount:          99
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1662,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1667,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1674,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1682,9'
          Dst:             log_status_
    - functionName:    winpr_AcquireCredentialsHandleA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1307
      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:1292,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1299,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1306,9'
          Dst:             log_status_
    - functionName:    winpr_QueryCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1431
      functionLinenumberEnd: 1450
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1432,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1437,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1444,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1449,9'
          Dst:             log_status_
    - functionName:    winpr_EnumerateSecurityPackagesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1112
      functionLinenumberEnd: 1142
      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:1116,20'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1129,30'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1130,33'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1134,4'
          Dst:             sspi_ContextBufferFree
    - functionName:    sspi_GetSecurityFunctionTableWByNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1041
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - sspi_GetSecurityFunctionTableWByNameW
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1033,17'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1038,40'
          Dst:             sspi_GetSecurityFunctionTableWByNameW
    - functionName:    sspi_GetSecurityFunctionTableWByNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1014
      functionLinenumberEnd: 1026
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - _wcscmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1019,7'
          Dst:             _wcscmp
    - functionName:    winpr_SetCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1455
      functionLinenumberEnd: 1475
      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
        - log_status_
        - sspi_GetSecurityFunctionTableWByNameW
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1456,36'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1461,40'
          Dst:             sspi_GetSecurityFunctionTableWByNameW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1468,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1474,9'
          Dst:             log_status_
    - functionName:    winpr_SetContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1757
      functionLinenumberEnd: 1777
      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
        - log_status_
        - sspi_GetSecurityFunctionTableWByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1758,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1763,40'
          Dst:             sspi_GetSecurityFunctionTableWByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1770,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1776,9'
          Dst:             log_status_
    - functionName:    winpr_DecryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1832
      functionLinenumberEnd: 1852
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1833,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1838,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1845,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1851,9'
          Dst:             log_status_
    - functionName:    winpr_EncryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1856
      functionLinenumberEnd: 1875
      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
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1857,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1862,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1869,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1874,9'
          Dst:             log_status_
    - functionName:    winpr_QuerySecurityContextToken
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1733
      functionLinenumberEnd: 1752
      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
        - log_status_
        - sspi_GetSecurityFunctionTableWByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1734,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1739,40'
          Dst:             sspi_GetSecurityFunctionTableWByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1746,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1751,9'
          Dst:             log_status_
    - functionName:    winpr_ImportSecurityContextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1359
      functionLinenumberEnd: 1379
      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
        - log_status_
        - sspi_GetSecurityFunctionTableWByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1360,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1365,40'
          Dst:             sspi_GetSecurityFunctionTableWByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1372,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1378,9'
          Dst:             log_status_
    - functionName:    winpr_ExportSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1312
      functionLinenumberEnd: 1332
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1313,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1318,40'
          Dst:             sspi_GetSecurityFunctionTableWByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1325,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1331,9'
          Dst:             log_status_
    - functionName:    winpr_QuerySecurityPackageInfoW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1163
      functionLinenumberEnd: 1190
      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:1168,7'
          Dst:             _wcscmp
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1172,22'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1181,25'
          Dst:             _wcsdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1182,28'
          Dst:             _wcsdup
    - functionName:    winpr_FreeContextBuffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1600
      functionLinenumberEnd: 1606
      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:1604,2'
          Dst:             sspi_ContextBufferFree
    - functionName:    winpr_VerifySignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1903
      functionLinenumberEnd: 1923
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1904,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1909,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1916,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1922,9'
          Dst:             log_status_
    - functionName:    winpr_MakeSignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1879
      functionLinenumberEnd: 1898
      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
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1880,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1885,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1892,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1897,9'
          Dst:             log_status_
    - functionName:    winpr_RevertSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1805
      functionLinenumberEnd: 1825
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1806,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1811,40'
          Dst:             sspi_GetSecurityFunctionTableWByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1818,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1824,9'
          Dst:             log_status_
    - functionName:    winpr_ImpersonateSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1609
      functionLinenumberEnd: 1628
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1610,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1615,40'
          Dst:             sspi_GetSecurityFunctionTableWByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1622,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1627,9'
          Dst:             log_status_
    - functionName:    winpr_QueryContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1687
      functionLinenumberEnd: 1706
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1688,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1693,40'
          Dst:             sspi_GetSecurityFunctionTableWByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1700,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1705,9'
          Dst:             log_status_
    - functionName:    winpr_ApplyControlToken
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1533
      functionLinenumberEnd: 1552
      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
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1534,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1539,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1546,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1551,9'
          Dst:             log_status_
    - functionName:    winpr_DeleteSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1578
      functionLinenumberEnd: 1597
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1579,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1584,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1591,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1596,9'
          Dst:             log_status_
    - functionName:    winpr_CompleteAuthToken
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1556
      functionLinenumberEnd: 1575
      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
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1557,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1562,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1569,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1574,9'
          Dst:             log_status_
    - functionName:    winpr_AcceptSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1508
      functionLinenumberEnd: 1529
      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:         10
      ICount:          90
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1509,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1514,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1521,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1528,9'
          Dst:             log_status_
    - functionName:    winpr_InitializeSecurityContextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1634
      functionLinenumberEnd: 1655
      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:         10
      ICount:          99
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1635,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1640,40'
          Dst:             sspi_GetSecurityFunctionTableWByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1647,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1654,9'
          Dst:             log_status_
    - functionName:    winpr_FreeCredentialsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1335
      functionLinenumberEnd: 1354
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1336,34'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1341,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1348,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1353,9'
          Dst:             log_status_
    - functionName:    winpr_AcquireCredentialsHandleW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1269
      functionLinenumberEnd: 1285
      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:1270,40'
          Dst:             sspi_GetSecurityFunctionTableWByNameW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1277,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1284,9'
          Dst:             log_status_
    - functionName:    winpr_QueryCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1408
      functionLinenumberEnd: 1427
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByNameW
        - sspi_SecureHandleGetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1409,36'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1414,40'
          Dst:             sspi_GetSecurityFunctionTableWByNameW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1421,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1426,9'
          Dst:             log_status_
    - functionName:    winpr_EnumerateSecurityPackagesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1084
      functionLinenumberEnd: 1108
      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:1088,20'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1101,30'
          Dst:             _wcsdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1102,33'
          Dst:             _wcsdup
    - functionName:    WINPR_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 963
      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:960,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:    winpr_InitSecurityInterfaceA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1995
      functionLinenumberEnd: 1996
      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: 1990
      functionLinenumberEnd: 1991
      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: 994
      functionLinenumberEnd: 996
      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:995,2'
          Dst:             sspi_ContextBufferAllocTableFree
    - functionName:    sspi_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 968
      functionLinenumberEnd: 983
      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:969,7'
          Dst:             winpr_InitializeSSL
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:971,2'
          Dst:             sspi_ContextBufferAllocTableNew
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:972,7'
          Dst:             SCHANNEL_init
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:974,7'
          Dst:             KERBEROS_init
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:976,7'
          Dst:             NTLM_init
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:978,7'
          Dst:             CREDSSP_init
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:980,7'
          Dst:             NEGOTIATE_init
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:982,9'
          Dst:             WINPR_init
    - functionName:    sspi_GlobalInit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 986
      functionLinenumberEnd: 991
      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:989,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:989,7'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:990,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    sspi_FindSecBuffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 939
      functionLinenumberEnd: 951
      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: 840
      functionLinenumberEnd: 936
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:853,2'
          Dst:             sspi_FreeAuthIdentity
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:855,18'
          Dst:             sspi_GetAuthIdentityFlags
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:861,8'
          Dst:             sspi_GetAuthIdentityUserDomainA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:867,8'
          Dst:             sspi_GetAuthIdentityPasswordA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:872,12'
          Dst:             sspi_SetAuthIdentityA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:884,7'
          Dst:             sspi_GetAuthIdentityUserDomainW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:889,7'
          Dst:             sspi_GetAuthIdentityPasswordW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:899,29'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:912,31'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:925,33'
          Dst:             calloc
    - functionName:    sspi_GetAuthIdentityFlags
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 445
      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:429,12'
          Dst:             sspi_GetAuthIdentityVersion
    - functionName:    sspi_GetAuthIdentityUserDomainA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 525
      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:495,12'
          Dst:             sspi_GetAuthIdentityVersion
    - functionName:    sspi_GetAuthIdentityPasswordA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 585
      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:565,12'
          Dst:             sspi_GetAuthIdentityVersion
    - functionName:    sspi_SetAuthIdentityA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 400
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:386,17'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:389,19'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:392,21'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:394,7'
          Dst:             sspi_SetAuthIdentityWithLengthW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:397,2'
          Dst:             zfree
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:398,2'
          Dst:             zfree
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:399,2'
          Dst:             zfree
    - functionName:    sspi_GetAuthIdentityUserDomainW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 485
      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:455,12'
          Dst:             sspi_GetAuthIdentityVersion
    - functionName:    sspi_GetAuthIdentityPasswordW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 555
      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:535,12'
          Dst:             sspi_GetAuthIdentityVersion
    - functionName:    sspi_GetAuthIdentityVersion
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 419
      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: 349
      functionLinenumberEnd: 365
      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:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:350,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:351,2'
          Dst:             sspi_FreeAuthIdentity
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:355,7'
          Dst:             copy
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:358,7'
          Dst:             copy
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:361,7'
          Dst:             copy
    - functionName:    zfree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 372
      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: 321
      functionLinenumberEnd: 344
      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:322,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:323,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:337,9'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:342,12'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:342,12'
          Dst:             winpr_int_assert
    - functionName:    sspi_CopyAuthPackageListA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 779
      functionLinenumberEnd: 836
      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:792,12'
          Dst:             sspi_GetAuthIdentityVersion
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:793,18'
          Dst:             sspi_GetAuthIdentityFlags
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:806,18'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:826,18'
          Dst:             ConvertWCharNToUtf8Alloc
    - functionName:    sspi_CopyAuthIdentityFieldsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 682
      functionLinenumberEnd: 776
      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:699,25'
          Dst:             sspi_GetAuthIdentityFlags
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:703,8'
          Dst:             sspi_GetAuthIdentityUserDomainA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:707,8'
          Dst:             sspi_GetAuthIdentityPasswordA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:712,17'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:721,17'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:729,17'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:740,8'
          Dst:             sspi_GetAuthIdentityUserDomainW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:744,8'
          Dst:             sspi_GetAuthIdentityPasswordW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:749,13'
          Dst:             winpr_wcsndup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:757,15'
          Dst:             winpr_wcsndup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:765,17'
          Dst:             winpr_wcsndup
    - functionName:    sspi_CopyAuthIdentityFieldsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 678
      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:606,25'
          Dst:             sspi_GetAuthIdentityFlags
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:610,8'
          Dst:             sspi_GetAuthIdentityUserDomainA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:614,8'
          Dst:             sspi_GetAuthIdentityPasswordA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:619,13'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:627,15'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:635,17'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:645,8'
          Dst:             sspi_GetAuthIdentityUserDomainW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:649,8'
          Dst:             sspi_GetAuthIdentityPasswordW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:654,13'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:661,15'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:668,17'
          Dst:             ConvertWCharNToUtf8Alloc
    - functionName:    sspi_SetAuthIdentityW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 317
      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:315,64'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:316,50'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:317,52'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:315,9'
          Dst:             sspi_SetAuthIdentityWithLengthW
    - functionName:    sspi_SecureHandleFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 310
      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_SecureHandleSetUpperPointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 305
      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_SecureHandleSetLowerPointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 286
      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: 272
      functionLinenumberEnd: 278
      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: 261
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    53
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_SecureHandleAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 258
      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:251,34'
          Dst:             calloc
    - functionName:    sspi_SecBufferFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    47
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_SecBufferAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:227,24'
          Dst:             calloc
    - functionName:    sspi_CredentialsFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          166
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_CredentialsNew
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 184
      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/sspi_winpr.c:183,35'
          Dst:             calloc
    - 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:    13
      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:    43
      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:    1
      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:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/sspi.c:483,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    winpr_aligned_msize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/alignment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - get_aligned_mem_block_
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/alignment.c:239,28'
          Dst:             get_aligned_mem_block_
    - functionName:    get_aligned_mem_block_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/alignment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          74
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_log_backtrace_ex
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/alignment.c:64,15'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/crt/alignment.c:65,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/crt/alignment.c:67,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/crt/alignment.c:69,4'
          Dst:             winpr_log_backtrace_ex
    - functionName:    cMIN
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/alignment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_aligned_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/alignment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - get_aligned_mem_block_
      functionUses:    61
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/alignment.c:249,28'
          Dst:             get_aligned_mem_block_
    - functionName:    winpr_aligned_offset_recalloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/alignment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          157
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - cMIN
        - get_aligned_mem_block_
        - winpr_aligned_free
        - winpr_aligned_offset_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/alignment.c:199,17'
          Dst:             winpr_aligned_offset_malloc
        - Src:             'winpr/libwinpr/crt/alignment.c:210,28'
          Dst:             get_aligned_mem_block_
        - Src:             'winpr/libwinpr/crt/alignment.c:220,16'
          Dst:             winpr_aligned_offset_malloc
        - Src:             'winpr/libwinpr/crt/alignment.c:227,24'
          Dst:             cMIN
        - Src:             'winpr/libwinpr/crt/alignment.c:232,2'
          Dst:             winpr_aligned_free
    - functionName:    winpr_aligned_offset_malloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/alignment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          182
      EdgeCount:       36
      CyclomaticComplexity: 12
      functionsReached:
        - posix_memalign
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/alignment.c:131,6'
          Dst:             posix_memalign
    - functionName:    posix_memalign
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_aligned_offset_realloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/alignment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          112
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - get_aligned_mem_block_
        - winpr_aligned_free
        - winpr_aligned_offset_malloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/alignment.c:161,10'
          Dst:             winpr_aligned_offset_malloc
        - Src:             'winpr/libwinpr/crt/alignment.c:163,28'
          Dst:             get_aligned_mem_block_
        - Src:             'winpr/libwinpr/crt/alignment.c:169,3'
          Dst:             winpr_aligned_free
        - Src:             'winpr/libwinpr/crt/alignment.c:173,22'
          Dst:             winpr_aligned_offset_malloc
        - Src:             'winpr/libwinpr/crt/alignment.c:180,2'
          Dst:             winpr_aligned_free
    - functionName:    winpr_aligned_realloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/alignment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_aligned_offset_realloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/alignment.c:89,9'
          Dst:             winpr_aligned_offset_realloc
    - functionName:    winpr_aligned_recalloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/alignment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_aligned_offset_recalloc
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/alignment.c:94,9'
          Dst:             winpr_aligned_offset_recalloc
    - functionName:    winpr_aligned_calloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/alignment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_aligned_recalloc
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/alignment.c:84,9'
          Dst:             winpr_aligned_recalloc
    - functionName:    winpr_aligned_malloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/alignment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_aligned_offset_malloc
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/alignment.c:79,9'
          Dst:             winpr_aligned_offset_malloc
    - functionName:    _itoa_s
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/conversion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          126
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - snprintf
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/conversion.c:31,15'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/crt/conversion.c:39,26'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/conversion.c:39,26'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/conversion.c:39,8'
          Dst:             snprintf
    - 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:    6
      BranchProfiles:  []
      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:    5
      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:    14
      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:    18
      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:    29
      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:    19
      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:    1
      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:    3
      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:    17
      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:    18
      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:    37
      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:    8
      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: 985
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          90
      EdgeCount:       45
      CyclomaticComplexity: 24
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:958,3'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/crt/string.c:968,5'
          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:    4
      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:    2
      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:    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:    26
      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:    1
      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:    39
      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:    27
      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:    2
      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:    10
      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:    21
      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:    52
      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:    10
      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:    134
      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:    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:    5
      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:    39
      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:    168
      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:    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:    3
      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:    1
      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:    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:    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:    9868
      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:    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:    RpcServerInqBindingHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1076
      functionLinenumberEnd: 1078
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:1077,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:    112
      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:    RpcMgmtSetAuthorizationFn
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1070
      functionLinenumberEnd: 1072
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:1071,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtEpUnregister
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1064
      functionLinenumberEnd: 1066
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - '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/rpc/rpc.c:1065,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtEpEltInqNextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1055
      functionLinenumberEnd: 1057
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:1056,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtEpEltInqNextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1045
      functionLinenumberEnd: 1047
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:1046,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtEpEltInqDone
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1035
      functionLinenumberEnd: 1037
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:1036,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtEpEltInqBegin
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1031
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - '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/rpc/rpc.c:1030,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    DceErrorInqTextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1018
      functionLinenumberEnd: 1020
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:1019,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    DceErrorInqTextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1011
      functionLinenumberEnd: 1013
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:1012,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcEpUnregister
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1004
      functionLinenumberEnd: 1006
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:1005,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcEpRegisterW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 996
      functionLinenumberEnd: 998
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - '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/rpc/rpc.c:997,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcEpRegisterA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 987
      functionLinenumberEnd: 989
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - '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/rpc/rpc.c:988,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcEpRegisterNoReplaceW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 978
      functionLinenumberEnd: 980
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - '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/rpc/rpc.c:979,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcEpRegisterNoReplaceA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 969
      functionLinenumberEnd: 971
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - '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/rpc/rpc.c:970,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    UuidIsNil
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 961
      functionLinenumberEnd: 962
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - UuidEqual
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:962,9'
          Dst:             UuidEqual
    - functionName:    UuidEqual
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 950
      functionLinenumberEnd: 951
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - UuidCompare
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:951,9'
          Dst:             UuidCompare
    - functionName:    UuidCompare
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 916
      functionLinenumberEnd: 941
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          178
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    UuidHash
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 957
      functionDepth:   0
      returnType:      short
      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/rpc/rpc.c:956,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    UuidFromStringW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 910
      functionLinenumberEnd: 912
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:911,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    UuidCreateNil
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 944
      functionLinenumberEnd: 946
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    UuidFromStringA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 863
      functionLinenumberEnd: 907
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          449
      EdgeCount:       65
      CyclomaticComplexity: 19
      functionsReached:
        - UuidCreateNil
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:867,10'
          Dst:             UuidCreateNil
        - Src:             'winpr/libwinpr/rpc/rpc.c:870,6'
          Dst:             strnlen
    - functionName:    UuidToStringW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 857
      functionLinenumberEnd: 859
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:858,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    UuidToStringA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 836
      functionLinenumberEnd: 854
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          97
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:849,8'
          Dst:             snprintf
    - functionName:    UuidCreateSequential
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 829
      functionLinenumberEnd: 833
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_RAND_pseudo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:830,6'
          Dst:             winpr_RAND_pseudo
    - functionName:    UuidCreate
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 822
      functionLinenumberEnd: 826
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_RAND_pseudo
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:823,6'
          Dst:             winpr_RAND_pseudo
    - functionName:    RpcCancelThreadEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 810
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:809,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcCancelThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 802
      functionLinenumberEnd: 804
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:803,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerTestCancel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 796
      functionLinenumberEnd: 798
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:797,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcTestCancel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 790
      functionLinenumberEnd: 792
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:791,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingServerFromClient
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 777
      functionLinenumberEnd: 779
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:778,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerRegisterAuthInfoW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 770
      functionLinenumberEnd: 772
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:771,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerRegisterAuthInfoA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 761
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:762,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingInqAuthInfoExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 752
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      size_t
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:753,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingInqAuthInfoExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 739
      functionLinenumberEnd: 741
      functionDepth:   0
      returnType:      size_t
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:740,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingSetAuthInfoExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 728
      functionDepth:   0
      returnType:      size_t
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:727,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingSetAuthInfoW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 714
      functionLinenumberEnd: 716
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:715,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingSetAuthInfoExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      size_t
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:704,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingSetAuthInfoA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 693
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:692,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingInqAuthInfoW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 682
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - '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/rpc/rpc.c:681,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingInqAuthInfoA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 669
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - '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/rpc/rpc.c:670,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingInqAuthClientExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 658
      functionLinenumberEnd: 660
      functionDepth:   0
      returnType:      size_t
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:659,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingInqAuthClientExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 646
      functionLinenumberEnd: 648
      functionDepth:   0
      returnType:      size_t
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:647,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingInqAuthClientW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 636
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - '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/rpc/rpc.c:635,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingInqAuthClientA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 623
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - '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/rpc/rpc.c:624,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcRevertToSelf
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:613,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcRevertToSelfEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:607,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcImpersonateClient
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 600
      functionLinenumberEnd: 602
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:601,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcNsBindingInqEntryNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 596
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:595,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcNsBindingInqEntryNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 588
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:587,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcEpResolveBinding
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:579,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerInqDefaultPrincNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:572,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerInqDefaultPrincNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:565,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtInqServerPrincNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 557
      functionLinenumberEnd: 559
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:558,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtInqServerPrincNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 549
      functionLinenumberEnd: 551
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:550,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcIfIdVectorFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 543
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:542,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtInqIfIds
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:536,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtEnableIdleCleanup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:529,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcSsDontSerializeContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      void
      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/rpc/rpc.c:524,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtSetServerStackSize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:518,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtWaitServerListen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:512,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtStopServerListening
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:506,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtIsServerListening
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 501
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:500,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtInqStats
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:494,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtStatsVectorFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 488
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:487,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerYield
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 483
      functionDepth:   0
      returnType:      void
      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/rpc/rpc.c:482,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseProtseqIfExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 477
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:476,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseProtseqIfW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:466,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseProtseqIfExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:457,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseProtseqIfA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:447,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseProtseqEpExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:438,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseProtseqEpW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:428,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseProtseqEpExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:419,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseProtseqEpA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:409,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseProtseqExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 399
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:400,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseProtseqW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:391,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseProtseqExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:383,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseProtseqA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:374,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseAllProtseqsIfEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - '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/rpc/rpc.c:366,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseAllProtseqsIf
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - '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/rpc/rpc.c:357,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseAllProtseqsEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - '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/rpc/rpc.c:349,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUseAllProtseqs
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:341,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUnregisterIfEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:334,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerUnregisterIf
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:326,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerRegisterIf2
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      size_t
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 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/rpc/rpc.c:318,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerRegisterIfEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:306,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerRegisterIf
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:295,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerListen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:287,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerInqIf
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:279,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcServerInqBindings
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:271,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcProtseqVectorFreeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:265,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcProtseqVectorFreeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:259,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcObjectSetType
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:253,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcObjectSetInqFn
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:247,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcObjectInqType
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:241,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcNetworkInqProtseqsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:235,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcNetworkInqProtseqsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:229,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtSetCancelTimeout
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:223,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtSetComTimeout
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:217,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtInqComTimeout
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:210,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcNetworkIsProtseqValidW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:203,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcNetworkIsProtseqValidA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:197,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcIfInqId
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:191,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcStringFreeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RpcStringFreeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RpcStringBindingParseW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - '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/rpc/rpc.c:168,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcStringBindingParseA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - '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/rpc/rpc.c:157,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcStringBindingComposeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - '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/rpc/rpc.c:146,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcStringBindingComposeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - '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/rpc/rpc.c:135,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingVectorFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:124,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingToStringBindingW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:118,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingToStringBindingA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:111,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcMgmtInqDefaultProtectLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:104,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingSetObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:97,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingReset
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:90,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingInqObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:84,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcSsGetContextBinding
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:77,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingFromStringBindingW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:70,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingFromStringBindingA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:63,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingInqOption
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:56,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingSetOption
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/rpc/rpc.c:48,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:40,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RpcBindingCopy
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/rpc/rpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      size_t
      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/rpc/rpc.c:34,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:    LoadAndInitialize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 702
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - GetProcAddress
        - LoadLibraryX
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:703,19'
          Dst:             LoadLibraryX
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:708,31'
          Dst:             GetProcAddress
    - functionName:    InitializeWtsApiStubs_FreeRDS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 743
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         16
      ICount:          94
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - GetCombinedPath
        - IniFile_Free
        - IniFile_GetKeyValueString
        - IniFile_New
        - IniFile_ReadFile
        - LoadAndInitialize
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:751,8'
          Dst:             IniFile_New
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:753,6'
          Dst:             IniFile_ReadFile
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:755,3'
          Dst:             IniFile_Free
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:756,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:757,3'
          Dst:             LoadAndInitialize
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:761,11'
          Dst:             IniFile_GetKeyValueString
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:762,11'
          Dst:             IniFile_GetKeyValueString
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:763,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:769,19'
          Dst:             GetCombinedPath
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:770,20'
          Dst:             GetCombinedPath
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:774,4'
          Dst:             LoadAndInitialize
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:781,2'
          Dst:             IniFile_Free
    - functionName:    InitializeWtsApiStubs_Env
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          68
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - GetEnvironmentVariableA
        - LoadAndInitialize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:726,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:734,7'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:735,4'
          Dst:             LoadAndInitialize
    - functionName:    WTSRegisterWtsApiFunctionTable
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:696,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:696,7'
          Dst:             InitializeWtsApiStubs
    - functionName:    InitializeWtsApiStubs
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 804
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - InitializeWtsApiStubs_Env
        - InitializeWtsApiStubs_FreeRDS
      functionUses:    68
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:794,2'
          Dst:             InitializeWtsApiStubs_Env
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:801,3'
          Dst:             InitializeWtsApiStubs_FreeRDS
    - functionName:    WTSSessionStateToString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 656
      functionLinenumberEnd: 683
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          68
      EdgeCount:       26
      CyclomaticComplexity: 14
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/wtsapi/wtsapi.c:657,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    WTSErrorToString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 584
      functionLinenumberEnd: 653
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          122
      EdgeCount:       46
      CyclomaticComplexity: 24
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/wtsapi/wtsapi.c:585,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    WTSGetActiveConsoleSessionId
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          51
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:572,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:572,7'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSLogoffUser
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:561,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:561,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSLogonUser
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 557
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:556,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:556,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSGetChildSessionId
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 552
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:551,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:551,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSIsChildSessionsEnabled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 545
      functionLinenumberEnd: 547
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:546,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:546,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSEnableChildSessions
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:541,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:541,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSGetListenerSecurityA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 534
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          75
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:535,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:535,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSGetListenerSecurityW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          75
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:526,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:526,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSSetListenerSecurityA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:517,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:517,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSSetListenerSecurityW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:509,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:509,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSCreateListenerA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 500
      functionLinenumberEnd: 503
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:501,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:501,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSCreateListenerW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:494,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:494,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSQueryListenerConfigA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:487,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:487,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSQueryListenerConfigW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 482
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:480,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:480,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSEnumerateListenersA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 475
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:474,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:474,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSEnumerateListenersW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:468,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:468,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSEnumerateProcessesExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 463
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:462,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:462,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSEnumerateProcessesExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:456,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:456,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSQueryUserToken
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:450,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:450,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSUnRegisterSessionNotificationEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:445,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:445,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSRegisterSessionNotificationEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:440,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:440,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSUnRegisterSessionNotification
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:435,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:435,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSRegisterSessionNotification
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:430,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:430,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSFreeMemoryExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:425,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:425,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSFreeMemoryExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:420,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:420,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSFreeMemory
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 416
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          49
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:415,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:415,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSVirtualChannelQuery
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:409,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:409,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSVirtualChannelPurgeOutput
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:403,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:403,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSVirtualChannelPurgeInput
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:398,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:398,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSVirtualChannelWrite
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:393,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:393,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSVirtualChannelRead
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:386,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:386,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSVirtualChannelClose
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:380,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:380,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSVirtualChannelOpenEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:375,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:375,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSVirtualChannelOpen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:370,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:370,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSWaitSystemEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:365,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:365,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSShutdownSystem
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:360,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:360,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSLogoffSession
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:355,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:355,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSDisconnectSession
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:350,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:350,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSSendMessageA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:344,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:344,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSSendMessageW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:336,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:336,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSSetUserConfigA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:328,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:328,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSSetUserConfigW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:321,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:321,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSQueryUserConfigA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:314,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:314,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSQueryUserConfigW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:307,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:307,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSQuerySessionInformationA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 298
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:299,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:299,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSQuerySessionInformationW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:291,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:291,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSTerminateProcess
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:284,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:284,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSEnumerateProcessesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:279,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:279,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSEnumerateProcessesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:273,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:273,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSEnumerateSessionsExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:267,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:267,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSEnumerateSessionsExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:261,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:261,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSEnumerateSessionsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:255,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:255,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSEnumerateSessionsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:249,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:249,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSCloseServer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          49
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:243,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:243,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSOpenServerExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:238,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:238,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSOpenServerExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:233,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:233,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSOpenServerA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:228,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:228,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSOpenServerW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:223,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:223,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSEnumerateServersA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:218,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:218,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSEnumerateServersW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:212,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:212,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSConnectSessionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:206,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:206,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSConnectSessionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:201,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:201,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSStopRemoteControlSession
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:196,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:196,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSStartRemoteControlSessionExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - char
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:190,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:190,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSStartRemoteControlSessionExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - char
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:183,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:183,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSStartRemoteControlSessionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - char
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:176,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:176,2'
          Dst:             InitializeWtsApiStubs
    - functionName:    WTSStartRemoteControlSessionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/wtsapi/wtsapi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - char
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeWtsApiStubs
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:169,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/wtsapi/wtsapi.c:169,2'
          Dst:             InitializeWtsApiStubs
    - 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:    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:    3
      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:    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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/nt/ntstatus.c:4625,6'
          Dst:             bsearch
        - Src:             'winpr/libwinpr/nt/ntstatus.c:4625,6'
          Dst:             ntstatus_compare
    - 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:    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:    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:    _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:    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:    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:    parseHex
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 647
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          280
      EdgeCount:       65
      CyclomaticComplexity: 17
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parseKeyName
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 725
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          106
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - ConvertWCharToUtf8
        - parseHex
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:703,6'
          Dst:             ConvertWCharToUtf8
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:709,8'
          Dst:             strchr
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:717,6'
          Dst:             parseHex
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:720,11'
          Dst:             parseHex
    - functionName:    attribute_allocate_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:235,22'
          Dst:             calloc
    - functionName:    attribute_allocate_ulong_array
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:229,22'
          Dst:             calloc
    - functionName:    attribute_allocate_attribute_array
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:222,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:223,22'
          Dst:             calloc
    - functionName:    attributes_allocate_buffers
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          103
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached:
        - attribute_allocate_attribute_array
        - attribute_allocate_buffer
        - attribute_allocate_ulong_array
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:248,3'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:252,12'
          Dst:             attribute_allocate_attribute_array
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:256,12'
          Dst:             attribute_allocate_ulong_array
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:260,12'
          Dst:             attribute_allocate_buffer
    - functionName:    attributes_have_unallocated_buffers
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    object_load_attributes
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          188
      EdgeCount:       43
      CyclomaticComplexity: 3
      functionsReached:
        - CK_RV_error_string
        - WLog_Print_dbg_tag
        - attributes_allocate_buffers
        - attributes_have_unallocated_buffers
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:278,2'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:303,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:272,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:273,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:274,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:281,9'
          Dst:             attributes_have_unallocated_buffers
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:289,9'
          Dst:             attributes_allocate_buffers
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:294,5'
          Dst:             CK_RV_error_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:294,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:298,4'
          Dst:             CK_RV_error_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:298,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:308,4'
          Dst:             CK_RV_error_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:308,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CK_RV_error_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         90
      ICount:          450
      EdgeCount:       179
      CyclomaticComplexity: 91
      functionsReached:
        - snprintf
      functionUses:    14
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:325,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:413,10'
          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:    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_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      void
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - CK_RV_error_string
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:427,20'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:428,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:432,74'
          Dst:             CK_RV_error_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:431,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    wprintKeyName
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 644
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          99
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertUtf8NToWChar
        - snprintf
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:634,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:640,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:643,28'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:642,8'
          Dst:             ConvertUtf8NToWChar
    - functionName:    convertKeyType
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 621
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          240
      EdgeCount:       55
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - _wcsnlen
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:564,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:566,3'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:567,3'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:568,3'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:569,3'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:570,3'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:571,3'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:572,3'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:573,3'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:612,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    collect_keys
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 551
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         88
      ICount:          521
      EdgeCount:       99
      CyclomaticComplexity: 13
      functionsReached:
        - CK_RV_error_string
        - WLog_Print_dbg_tag
        - fix_padded_string
        - log_
        - object_load_attributes
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:439,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:442,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:444,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:452,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:456,4'
          Dst:             log_
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:460,3'
          Dst:             fix_padded_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:461,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:468,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:472,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:475,4'
          Dst:             log_
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:478,4'
          Dst:             fix_padded_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:479,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:482,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:486,4'
          Dst:             CK_RV_error_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:486,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:492,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:497,4'
          Dst:             log_
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:503,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:508,5'
          Dst:             log_
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:512,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:524,10'
          Dst:             object_load_attributes
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:528,6'
          Dst:             CK_RV_error_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:528,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:540,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:543,4'
          Dst:             log_
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:545,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:548,4'
          Dst:             log_
    - functionName:    fix_padded_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          74
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:199,2'
          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_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,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:    get_piv_container_name_from_chuid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1040
      functionLinenumberEnd: 1083
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          231
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - ConvertUtf8NToWChar
        - SCardTransmit
        - Stream_Buffer
        - WinPrAsn1DecGetStream
        - WinPrAsn1DecReadTagAndLen
        - WinPrAsn1DecReadTagLenValue
        - WinPrAsn1Decoder_InitMem
        - WinPrAsn1Decoder_init
        - piv_check_sw
        - piv_check_sw_success
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1045,6'
          Dst:             SCardTransmit
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1048,7'
          Dst:             piv_check_sw_success
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1049,7'
          Dst:             piv_check_sw
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1052,25'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1053,26'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1057,2'
          Dst:             WinPrAsn1Decoder_InitMem
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1058,7'
          Dst:             WinPrAsn1DecReadTagAndLen
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1060,9'
          Dst:             WinPrAsn1DecReadTagLenValue
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1065,14'
          Dst:             WinPrAsn1DecGetStream
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1066,12'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1068,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1079,6'
          Dst:             ConvertUtf8NToWChar
    - functionName:    piv_check_sw_success
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 931
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    piv_check_sw
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 924
      functionLinenumberEnd: 925
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_piv_container_name_from_mscmap
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 938
      functionLinenumberEnd: 1034
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         80
      ICount:          474
      EdgeCount:       107
      CyclomaticComplexity: 29
      functionsReached:
        - SCardTransmit
        - memcmp
        - piv_check_sw
        - piv_check_sw_success
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:944,6'
          Dst:             SCardTransmit
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:948,6'
          Dst:             piv_check_sw_success
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:955,11'
          Dst:             piv_check_sw
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:961,10'
          Dst:             piv_check_sw
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:967,8'
          Dst:             SCardTransmit
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:972,8'
          Dst:             piv_check_sw_success
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:973,8'
          Dst:             piv_check_sw
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:980,8'
          Dst:             piv_check_sw_success
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1010,7'
          Dst:             memcmp
    - functionName:    get_piv_container_name
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1087
      functionLinenumberEnd: 1146
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          264
      EdgeCount:       69
      CyclomaticComplexity: 12
      functionsReached:
        - ConvertUtf8NToWCharAlloc
        - SCardConnectW
        - SCardDisconnect
        - SCardEstablishContext
        - SCardReleaseContext
        - SCardTransmit
        - fix_padded_string
        - get_piv_container_name_from_chuid
        - get_piv_container_name_from_mscmap
        - piv_check_sw
        - piv_check_sw_success
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1099,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1100,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1102,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1104,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1106,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1110,2'
          Dst:             fix_padded_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1111,11'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1118,6'
          Dst:             SCardEstablishContext
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1121,6'
          Dst:             SCardConnectW
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1127,6'
          Dst:             SCardTransmit
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1130,7'
          Dst:             piv_check_sw_success
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1131,7'
          Dst:             piv_check_sw
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1135,8'
          Dst:             get_piv_container_name_from_mscmap
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1137,9'
          Dst:             get_piv_container_name_from_chuid
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1142,3'
          Dst:             SCardDisconnect
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1144,3'
          Dst:             SCardReleaseContext
    - functionName:    check_for_piv_container_name
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1151
      functionLinenumberEnd: 1167
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          91
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - get_piv_container_name
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1155,7'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1163,12'
          Dst:             get_piv_container_name
    - functionName:    NCryptP11KeyGetProperties
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1173
      functionLinenumberEnd: 1376
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         133
      ICount:          714
      EdgeCount:       153
      CyclomaticComplexity: 22
      functionsReached:
        - ConvertUtf8NToWChar
        - WLog_Print_dbg_tag
        - calloc
        - check_for_piv_container_name
        - fix_padded_string
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1193,2'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1284,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1189,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1191,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1203,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1209,4'
          Dst:             fix_padded_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1210,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1225,9'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1254,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1259,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1263,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1267,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1271,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1275,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1290,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1311,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1315,13'
          Dst:             calloc
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1329,11'
          Dst:             check_for_piv_container_name
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1342,21'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1362,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1366,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1369,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1373,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    NCryptP11OpenKey
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1401
      functionLinenumberEnd: 1423
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          84
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - NCryptP11GetProperty
        - ncrypt_new_handle
        - parseKeyName
        - winpr_NCryptDefault_dtor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1408,8'
          Dst:             parseKeyName
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1412,35'
          Dst:             ncrypt_new_handle
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1412,35'
          Dst:             NCryptP11GetProperty
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1412,35'
          Dst:             winpr_NCryptDefault_dtor
    - functionName:    NCryptP11GetProperty
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1381
      functionLinenumberEnd: 1396
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          70
      EdgeCount:       25
      CyclomaticComplexity: 14
      functionsReached:
        - NCryptP11KeyGetProperties
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1385,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1384,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1390,11'
          Dst:             NCryptP11KeyGetProperties
    - functionName:    NCryptP11EnumKeys
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 730
      functionLinenumberEnd: 921
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         106
      ICount:          715
      EdgeCount:       132
      CyclomaticComplexity: 28
      functionsReached:
        - CK_RV_error_string
        - ConvertWCharToUtf8
        - WLog_Print_dbg_tag
        - _wcslen
        - calloc
        - checkNCryptHandle
        - collect_keys
        - convertKeyType
        - memcmp
        - strncpy
        - strnlen
        - strstr
        - winpr_int_assert
        - wprintKeyName
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:740,24'
          Dst:             checkNCryptHandle
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:753,7'
          Dst:             ConvertWCharToUtf8
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:755,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:759,7'
          Dst:             strstr
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:761,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:765,19'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:768,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:774,3'
          Dst:             strncpy
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:781,30'
          Dst:             calloc
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:785,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:791,4'
          Dst:             CK_RV_error_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:791,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:803,4'
          Dst:             CK_RV_error_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:803,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:807,9'
          Dst:             collect_keys
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:830,21'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:839,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:842,6'
          Dst:             CK_RV_error_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:842,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:847,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:852,5'
          Dst:             CK_RV_error_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:852,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:860,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:865,4'
          Dst:             CK_RV_error_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:865,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:870,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:874,4'
          Dst:             CK_RV_error_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:874,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:887,4'
          Dst:             convertKeyType
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:890,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:893,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:899,4'
          Dst:             wprintKeyName
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:901,43'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:902,4'
          Dst:             convertKeyType
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:906,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:909,4'
          Dst:             CK_RV_error_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:909,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    NCryptP11StorageProvider_dtor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          99
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - CK_RV_error_string
        - FreeLibrary
        - WLog_Print_dbg_tag
        - winpr_NCryptDefault_dtor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:183,4'
          Dst:             CK_RV_error_string
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:183,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:188,4'
          Dst:             FreeLibrary
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:191,9'
          Dst:             winpr_NCryptDefault_dtor
    - functionName:    NCryptGetModulePath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1534
      functionLinenumberEnd: 1539
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1537,2'
          Dst:             winpr_int_assert
    - functionName:    initialize_pkcs11
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1428
      functionLinenumberEnd: 1467
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          168
      EdgeCount:       42
      CyclomaticComplexity: 6
      functionsReached:
        - NCryptP11GetProperty
        - NCryptP11StorageProvider_dtor
        - ncrypt_new_handle
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1433,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1434,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1436,34'
          Dst:             ncrypt_new_handle
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1436,34'
          Dst:             NCryptP11GetProperty
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1436,34'
          Dst:             NCryptP11StorageProvider_dtor
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1452,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1453,2'
          Dst:             winpr_int_assert
    - functionName:    NCryptOpenP11StorageProviderEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1472
      functionLinenumberEnd: 1531
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          151
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - FreeLibrary
        - GetProcAddress
        - LoadLibraryA
        - WLog_Print_dbg_tag
        - _strdup
        - initialize_pkcs11
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1485,20'
          Dst:             LoadLibraryA
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1489,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1498,8'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1506,13'
          Dst:             initialize_pkcs11
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1515,26'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1522,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/ncrypt/ncrypt_pkcs11.c:1527,4'
          Dst:             FreeLibrary
    - functionName:    IniFile_Key_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    IniFile_Key_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          82
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - IniFile_Key_Free
        - _strdup
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:226,21'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/ini.c:230,15'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/ini.c:231,16'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/ini.c:235,4'
          Dst:             IniFile_Key_Free
    - functionName:    IniFile_SectionKeysResize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - realloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:261,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:268,22'
          Dst:             realloc
    - functionName:    IniFile_Section_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          66
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - IniFile_SectionKeysResize
        - IniFile_Section_Free
        - _strdup
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:285,29'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/ini.c:290,18'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/ini.c:295,7'
          Dst:             IniFile_SectionKeysResize
        - Src:             'winpr/libwinpr/utils/ini.c:301,2'
          Dst:             IniFile_Section_Free
    - functionName:    IniFile_Section_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          59
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - IniFile_Key_Free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:252,3'
          Dst:             IniFile_Key_Free
    - 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:    IniFile_Load_GetNextLine
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - IniFile_Load_NextLine
        - strlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:203,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:206,20'
          Dst:             strlen
        - Src:             'winpr/libwinpr/utils/ini.c:207,2'
          Dst:             IniFile_Load_NextLine
    - functionName:    IniFile_Load_NextLine
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          112
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - strlen
        - strtok_s
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:67,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:69,18'
          Dst:             strtok_s
        - Src:             'winpr/libwinpr/utils/ini.c:72,12'
          Dst:             strlen
    - functionName:    IniFile_Load_HasNextLine
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      int
      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/libwinpr/utils/ini.c:196,2'
          Dst:             winpr_int_assert
    - functionName:    IniFile_BufferResize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - realloc
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:91,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:95,15'
          Dst:             realloc
    - functionName:    IniFile_Clone
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 842
      functionLinenumberEnd: 887
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          191
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - IniFile_AddKey
        - IniFile_AddToSection
        - IniFile_BufferResize
        - IniFile_Free
        - IniFile_New
        - IniFile_SetFilename
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:846,19'
          Dst:             IniFile_New
        - Src:             'winpr/libwinpr/utils/ini.c:851,7'
          Dst:             IniFile_SetFilename
        - Src:             'winpr/libwinpr/utils/ini.c:856,8'
          Dst:             IniFile_BufferResize
        - Src:             'winpr/libwinpr/utils/ini.c:869,28'
          Dst:             IniFile_AddToSection
        - Src:             'winpr/libwinpr/utils/ini.c:879,4'
          Dst:             IniFile_AddKey
        - Src:             'winpr/libwinpr/utils/ini.c:885,2'
          Dst:             IniFile_Free
    - functionName:    IniFile_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 822
      functionLinenumberEnd: 839
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - IniFile_Free
        - IniFile_SectionResize
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:823,29'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/ini.c:828,7'
          Dst:             IniFile_SectionResize
        - Src:             'winpr/libwinpr/utils/ini.c:836,2'
          Dst:             IniFile_Free
    - functionName:    IniFile_SetFilename
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 495
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          59
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - _strdup
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:496,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:502,18'
          Dst:             _strdup
    - functionName:    IniFile_AddToSection
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          88
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - IniFile_GetSection
        - IniFile_SectionResize
        - IniFile_Section_New
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:349,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:354,29'
          Dst:             IniFile_GetSection
        - Src:             'winpr/libwinpr/utils/ini.c:358,8'
          Dst:             IniFile_SectionResize
        - Src:             'winpr/libwinpr/utils/ini.c:361,13'
          Dst:             IniFile_Section_New
    - functionName:    IniFile_AddKey
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          118
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - IniFile_GetKey
        - IniFile_Key_New
        - IniFile_SectionKeysResize
        - _strdup
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:393,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:398,21'
          Dst:             IniFile_GetKey
        - Src:             'winpr/libwinpr/utils/ini.c:402,8'
          Dst:             IniFile_SectionKeysResize
        - Src:             'winpr/libwinpr/utils/ini.c:405,9'
          Dst:             IniFile_Key_New
        - Src:             'winpr/libwinpr/utils/ini.c:415,16'
          Dst:             _strdup
    - functionName:    IniFile_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 807
      functionLinenumberEnd: 819
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - IniFile_Section_Free
        - IniFile_SetFilename
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:811,2'
          Dst:             IniFile_SetFilename
        - Src:             'winpr/libwinpr/utils/ini.c:814,3'
          Dst:             IniFile_Section_Free
    - functionName:    IniFile_GetKey
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          88
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - _stricmp
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:374,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:381,7'
          Dst:             _stricmp
    - functionName:    IniFile_GetSection
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          88
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - _stricmp
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:309,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:316,7'
          Dst:             _stricmp
    - functionName:    IniFile_SectionResize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - realloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:328,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:335,26'
          Dst:             realloc
    - functionName:    IniFile_Close_File
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fclose
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:134,9'
          Dst:             fclose
    - functionName:    IniFile_Open_File
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          57
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_fopen
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:139,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:145,10'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/ini.c:147,10'
          Dst:             winpr_fopen
    - functionName:    IniFile_WriteFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 775
      functionLinenumberEnd: 804
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          100
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - IniFile_Close_File
        - IniFile_Open_File
        - IniFile_WriteBuffer
        - fwrite
        - strlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:778,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:780,17'
          Dst:             IniFile_WriteBuffer
        - Src:             'winpr/libwinpr/utils/ini.c:785,24'
          Dst:             strlen
        - Src:             'winpr/libwinpr/utils/ini.c:791,13'
          Dst:             IniFile_Open_File
        - Src:             'winpr/libwinpr/utils/ini.c:795,6'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/utils/ini.c:801,2'
          Dst:             IniFile_Close_File
    - functionName:    IniFile_WriteBuffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 725
      functionLinenumberEnd: 772
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          237
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - snprintf
        - strlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:730,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:735,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/utils/ini.c:740,13'
          Dst:             strlen
        - Src:             'winpr/libwinpr/utils/ini.c:740,33'
          Dst:             strlen
        - Src:             'winpr/libwinpr/utils/ini.c:747,11'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/ini.c:757,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/ini.c:758,14'
          Dst:             strlen
        - Src:             'winpr/libwinpr/utils/ini.c:763,10'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/ini.c:764,15'
          Dst:             strlen
        - Src:             'winpr/libwinpr/utils/ini.c:764,35'
          Dst:             strlen
        - Src:             'winpr/libwinpr/utils/ini.c:767,9'
          Dst:             snprintf
    - functionName:    IniFile_SetKeyValueInt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 700
      functionLinenumberEnd: 722
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          87
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - IniFile_AddKey
        - IniFile_AddToSection
        - IniFile_GetSection
        - snprintf
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:705,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:707,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/ini.c:708,13'
          Dst:             IniFile_GetSection
        - Src:             'winpr/libwinpr/utils/ini.c:711,14'
          Dst:             IniFile_AddToSection
        - Src:             'winpr/libwinpr/utils/ini.c:716,9'
          Dst:             IniFile_AddKey
    - functionName:    IniFile_SetKeyValueString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 697
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          81
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - IniFile_AddKey
        - IniFile_AddToSection
        - IniFile_GetSection
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:682,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:683,30'
          Dst:             IniFile_GetSection
        - Src:             'winpr/libwinpr/utils/ini.c:686,14'
          Dst:             IniFile_AddToSection
        - Src:             'winpr/libwinpr/utils/ini.c:691,9'
          Dst:             IniFile_AddKey
    - functionName:    IniFile_GetKeyValueInt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          110
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - IniFile_GetKey
        - IniFile_GetSection
        - __errno_location
        - strtol
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:654,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:656,13'
          Dst:             IniFile_GetSection
        - Src:             'winpr/libwinpr/utils/ini.c:661,9'
          Dst:             IniFile_GetKey
        - Src:             'winpr/libwinpr/utils/ini.c:666,8'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/utils/ini.c:667,2'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/utils/ini.c:668,10'
          Dst:             strtol
        - Src:             'winpr/libwinpr/utils/ini.c:669,49'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/utils/ini.c:671,3'
          Dst:             __errno_location
    - functionName:    IniFile_GetKeyValueString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 645
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - IniFile_GetKey
        - IniFile_GetSection
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:631,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:633,13'
          Dst:             IniFile_GetSection
        - Src:             'winpr/libwinpr/utils/ini.c:638,9'
          Dst:             IniFile_GetKey
    - functionName:    IniFile_GetSectionKeyNames
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 581
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          197
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - IniFile_GetSection
        - calloc
        - strlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:582,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:587,30'
          Dst:             IniFile_GetSection
        - Src:             'winpr/libwinpr/utils/ini.c:600,29'
          Dst:             strlen
        - Src:             'winpr/libwinpr/utils/ini.c:604,28'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/ini.c:615,29'
          Dst:             strlen
    - functionName:    IniFile_GetSectionNames
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          174
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - strlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:542,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:555,29'
          Dst:             strlen
        - Src:             'winpr/libwinpr/utils/ini.c:559,32'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/ini.c:570,29'
          Dst:             strlen
    - functionName:    IniFile_Load_File
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          140
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - IniFile_BufferResize
        - IniFile_Close_File
        - IniFile_Load_NextLine
        - IniFile_Open_File
        - _fseeki64
        - _ftelli64
        - fread
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:154,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:156,13'
          Dst:             IniFile_Open_File
        - Src:             'winpr/libwinpr/utils/ini.c:160,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/utils/ini.c:164,26'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/utils/ini.c:168,7'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/utils/ini.c:177,8'
          Dst:             IniFile_BufferResize
        - Src:             'winpr/libwinpr/utils/ini.c:180,7'
          Dst:             fread
        - Src:             'winpr/libwinpr/utils/ini.c:186,2'
          Dst:             IniFile_Load_NextLine
        - Src:             'winpr/libwinpr/utils/ini.c:190,2'
          Dst:             IniFile_Close_File
    - functionName:    IniFile_ReadFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          71
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - IniFile_Load
        - IniFile_Load_File
        - IniFile_SetFilename
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:526,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:529,7'
          Dst:             IniFile_SetFilename
        - Src:             'winpr/libwinpr/utils/ini.c:534,7'
          Dst:             IniFile_Load_File
        - Src:             'winpr/libwinpr/utils/ini.c:537,9'
          Dst:             IniFile_Load
    - functionName:    IniFile_Load
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 492
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         57
      ICount:          307
      EdgeCount:       74
      CyclomaticComplexity: 19
      functionsReached:
        - IniFile_AddKey
        - IniFile_AddToSection
        - IniFile_Load_GetNextLine
        - IniFile_Load_HasNextLine
        - strchr
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:433,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:435,9'
          Dst:             IniFile_Load_HasNextLine
        - Src:             'winpr/libwinpr/utils/ini.c:437,16'
          Dst:             IniFile_Load_GetNextLine
        - Src:             'winpr/libwinpr/utils/ini.c:445,10'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/ini.c:451,4'
          Dst:             IniFile_AddToSection
        - Src:             'winpr/libwinpr/utils/ini.c:456,16'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/ini.c:486,9'
          Dst:             IniFile_AddKey
    - functionName:    IniFile_Load_String
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - IniFile_BufferResize
        - IniFile_Load_NextLine
        - strlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:110,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:117,13'
          Dst:             strlen
        - Src:             'winpr/libwinpr/utils/ini.c:122,7'
          Dst:             IniFile_BufferResize
        - Src:             'winpr/libwinpr/utils/ini.c:127,2'
          Dst:             IniFile_Load_NextLine
    - functionName:    IniFile_ReadBuffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ini.c'
      linkageType:     InternalLinkage
      functionLinenumber: 507
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          62
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - IniFile_Load
        - IniFile_Load_String
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ini.c:510,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ini.c:516,11'
          Dst:             IniFile_Load_String
        - Src:             'winpr/libwinpr/utils/ini.c:521,9'
          Dst:             IniFile_Load
    - functionName:    Queue_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - CloseHandle
        - DeleteCriticalSection
        - Queue_Clear
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:403,3'
          Dst:             Queue_Clear
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:404,3'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:406,8'
          Dst:             CloseHandle
    - functionName:    Queue_Clear
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          95
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - Queue_Lock
        - Queue_Unlock
        - ResetEvent
        - uptr2void
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:145,2'
          Dst:             Queue_Lock
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:151,16'
          Dst:             uptr2void
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:160,8'
          Dst:             ResetEvent
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:161,2'
          Dst:             Queue_Unlock
    - functionName:    Queue_Lock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 106
      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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:103,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:105,3'
          Dst:             EnterCriticalSection
    - functionName:    uptr2void
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Queue_Unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 117
      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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:114,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:116,3'
          Dst:             LeaveCriticalSection
    - functionName:    default_queue_equals
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 350
      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:    Queue_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          119
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - CreateEventA
        - InitializeCriticalSectionAndSpinCount
        - Queue_EnsureCapacity
        - Queue_Free
        - Queue_Object
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:359,27'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:372,7'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:375,7'
          Dst:             Queue_EnsureCapacity
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:378,17'
          Dst:             CreateEventA
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:384,18'
          Dst:             Queue_Object
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:391,2'
          Dst:             Queue_Free
    - functionName:    Queue_EnsureCapacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          284
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - memmove_s
        - realloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:193,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:213,37'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:243,11'
          Dst:             memmove_s
    - functionName:    Queue_Object
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 132
      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/Queue.c:131,2'
          Dst:             winpr_int_assert
    - functionName:    Queue_Discard
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Queue_Dequeue
        - Queue_Lock
        - Queue_Unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:340,2'
          Dst:             Queue_Lock
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:341,8'
          Dst:             Queue_Dequeue
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:345,2'
          Dst:             Queue_Unlock
    - functionName:    Queue_Dequeue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 298
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          86
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Queue_Lock
        - Queue_Unlock
        - ResetEvent
        - uptr2void
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:301,2'
          Dst:             Queue_Lock
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:305,9'
          Dst:             uptr2void
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:312,9'
          Dst:             ResetEvent
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:314,2'
          Dst:             Queue_Unlock
    - functionName:    Queue_Peek
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Queue_Lock
        - Queue_Unlock
        - uptr2void
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:326,2'
          Dst:             Queue_Lock
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:329,9'
          Dst:             uptr2void
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:331,2'
          Dst:             Queue_Unlock
    - functionName:    void2uptr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Queue_Enqueue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          120
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - Queue_EnsureCapacity
        - Queue_Lock
        - Queue_Unlock
        - SetEvent
        - void2uptr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:264,2'
          Dst:             Queue_Lock
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:266,7'
          Dst:             Queue_EnsureCapacity
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:270,31'
          Dst:             void2uptr
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:272,31'
          Dst:             void2uptr
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:282,9'
          Dst:             SetEvent
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:288,2'
          Dst:             Queue_Unlock
    - functionName:    Queue_Contains
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - Queue_Lock
        - Queue_Unlock
        - uptr2void
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:172,2'
          Dst:             Queue_Lock
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:176,15'
          Dst:             uptr2void
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:184,2'
          Dst:             Queue_Unlock
    - functionName:    Queue_Event
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 126
      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/utils/collections/Queue.c:125,2'
          Dst:             winpr_int_assert
    - functionName:    Queue_Capacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Queue_Lock
        - Queue_Unlock
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:86,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:88,2'
          Dst:             Queue_Lock
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:92,2'
          Dst:             Queue_Unlock
    - functionName:    Queue_Count
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/Queue.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Queue_Lock
        - Queue_Unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:75,2'
          Dst:             Queue_Lock
        - Src:             'winpr/libwinpr/utils/collections/Queue.c:79,2'
          Dst:             Queue_Unlock
    - functionName:    CountdownEvent_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/CountdownEvent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CloseHandle
        - DeleteCriticalSection
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:206,2'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:207,8'
          Dst:             CloseHandle
    - functionName:    CountdownEvent_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/CountdownEvent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          89
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - CountdownEvent_Free
        - CreateEventA
        - InitializeCriticalSectionAndSpinCount
        - SetEvent
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:170,49'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:178,7'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:181,21'
          Dst:             CreateEventA
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:187,8'
          Dst:             SetEvent
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:196,2'
          Dst:             CountdownEvent_Free
    - functionName:    CountdownEvent_Reset
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/CountdownEvent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:160,2'
          Dst:             winpr_int_assert
    - functionName:    CountdownEvent_Signal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/CountdownEvent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          121
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - SetEvent
        - WaitForSingleObject
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:128,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:130,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:132,6'
          Dst:             WaitForSingleObject
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:145,9'
          Dst:             SetEvent
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:149,2'
          Dst:             LeaveCriticalSection
    - functionName:    CountdownEvent_AddCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/CountdownEvent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - ResetEvent
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:105,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:106,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:112,9'
          Dst:             ResetEvent
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:114,2'
          Dst:             LeaveCriticalSection
    - functionName:    CountdownEvent_WaitHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/CountdownEvent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 92
      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/utils/collections/CountdownEvent.c:91,2'
          Dst:             winpr_int_assert
    - functionName:    CountdownEvent_IsSet
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/CountdownEvent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          45
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - WaitForSingleObject
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:78,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:79,6'
          Dst:             WaitForSingleObject
    - functionName:    CountdownEvent_InitialCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/CountdownEvent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:63,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:64,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:66,2'
          Dst:             LeaveCriticalSection
    - functionName:    CountdownEvent_CurrentCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/CountdownEvent.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:50,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:51,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/collections/CountdownEvent.c:53,2'
          Dst:             LeaveCriticalSection
    - 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:    return_type
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneNameMapUtils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          78
      EdgeCount:       31
      CyclomaticComplexity: 17
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:263,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:262,2'
          Dst:             winpr_int_assert
    - functionName:    tz_entry_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneNameMapUtils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      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:    tz_context_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneNameMapUtils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         7
      ICount:          38
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - tz_entry_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:92,3'
          Dst:             tz_entry_free
    - functionName:    tz_entry_clone
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneNameMapUtils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          117
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - _strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:77,24'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:79,23'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:81,16'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:83,14'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:85,24'
          Dst:             _strdup
    - functionName:    reallocate_context
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneNameMapUtils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - realloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:164,31'
          Dst:             realloc
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:168,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    id_cmp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneNameMapUtils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:291,9'
          Dst:             strcmp
    - functionName:    map_fallback
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneNameMapUtils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          148
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - _strdup
        - strchr
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:367,7'
          Dst:             strchr
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:370,17'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:374,19'
          Dst:             strchr
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:377,9'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:388,12'
          Dst:             strcmp
    - functionName:    iana_cmp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneNameMapUtils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:284,9'
          Dst:             strcmp
    - functionName:    get_for_type
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneNameMapUtils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          80
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - TimeZoneGetAt
        - return_type
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:297,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:298,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:303,39'
          Dst:             TimeZoneGetAt
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:307,11'
          Dst:             return_type
    - functionName:    TimeZoneGetAt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneNameMapUtils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - load_timezones
        - winpr_InitOnceExecuteOnce
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:253,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:253,7'
          Dst:             load_timezones
    - functionName:    load_timezones
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneNameMapUtils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - reallocate_context
        - tz_context_free
        - tz_entry_clone
        - winpr_atexit
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:185,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:238,8'
          Dst:             reallocate_context
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:241,35'
          Dst:             tz_entry_clone
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:245,8'
          Dst:             winpr_atexit
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:245,8'
          Dst:             tz_context_free
    - functionName:    TimeZoneIanaToWindows
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/timezone/TimeZoneNameMapUtils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - get_for_type
        - iana_cmp
        - id_cmp
        - map_fallback
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:401,20'
          Dst:             get_for_type
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:401,20'
          Dst:             iana_cmp
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:405,21'
          Dst:             map_fallback
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:409,9'
          Dst:             get_for_type
        - Src:             'winpr/libwinpr/timezone/TimeZoneNameMapUtils.c:409,9'
          Dst:             id_cmp
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 135
      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:130,3'
          Dst:             SetLastError
    - functionName:    NoneHandleGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/nonehandle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - NoneHandleIsHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/nonehandle.c:43,7'
          Dst:             NoneHandleIsHandle
    - functionName:    NoneHandleIsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/nonehandle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/nonehandle.c:38,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    NoneHandleCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/nonehandle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateNoneHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/nonehandle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/nonehandle.c:73,48'
          Dst:             calloc
    - 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:    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:    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: 1357
      functionLinenumberEnd: 1364
      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:1358,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1359,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1360,9'
          Dst:             ntlm_from_unicode_string_w
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1361,6'
          Dst:             ntlm_is_unicode_string_empty
    - functionName:    utf16len
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1368
      functionLinenumberEnd: 1373
      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:1369,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1370,2'
          Dst:             winpr_int_assert
    - functionName:    ntlm_SetContextServicePrincipalNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 201
      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:189,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:191,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:195,21'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:196,34'
          Dst:             ntlm_from_unicode_string_w
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:197,6'
          Dst:             ntlm_is_unicode_string_empty
    - functionName:    ntlm_SetContextAttributesCommon
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1245
      functionLinenumberEnd: 1353
      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:1256,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1252,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1283,10'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1291,10'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1299,10'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1350,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ntlm_SecBufferRealloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2038
      functionLinenumberEnd: 2040
      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:2039,2'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2040,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:    ntml_setUnicodeStringA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1421
      functionLinenumberEnd: 1428
      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:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1422,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1423,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1424,9'
          Dst:             ntlm_from_unicode_string_utf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1425,6'
          Dst:             ntlm_is_unicode_string_empty
    - 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: 952
      functionLinenumberEnd: 996
      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:953,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:965,8'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:972,8'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:982,4'
          Dst:             strncpy
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:989,4'
          Dst:             strncpy
    - functionName:    ntlm_QueryContextAttributesCommon
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1001
      functionLinenumberEnd: 1068
      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:1012,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1008,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1009,7'
          Dst:             check_context_
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1020,9'
          Dst:             identityToAuthIdentity
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1036,11'
          Dst:             ntlm_computeProofValue
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1042,9'
          Dst:             sspi_SecBufferAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1054,9'
          Dst:             sspi_SecBufferAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1062,11'
          Dst:             ntlm_computeMicValue
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1065,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    check_context_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 111
      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:58,14'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:63,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:64,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:71,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:72,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:77,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:78,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:84,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:85,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:91,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:92,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:98,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:99,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:105,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:106,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    ntlm_computeProofValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 899
      functionLinenumberEnd: 922
      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:903,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:904,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:908,7'
          Dst:             sspi_SecBufferAlloc
    - functionName:    ntlm_computeMicValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 925
      functionLinenumberEnd: 947
      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:929,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:930,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:935,7'
          Dst:             sspi_SecBufferAlloc
    - functionName:    utf8len
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1145
      functionLinenumberEnd: 1154
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          142
      EdgeCount:       43
      CyclomaticComplexity: 6
      functionsReached:
        - ConvertWCharNToUtf8
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1146,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1147,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1149,21'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1152,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1152,9'
          Dst:             winpr_int_assert
    - functionName:    ntlm_try_set_from_registry
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 367
      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:332,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:333,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:338,22'
          Dst:             ConvertUtf8ToWChar
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:341,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:345,6'
          Dst:             RegQueryValueExW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:351,15'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:354,15'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:354,15'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:355,22'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:355,22'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:357,18'
          Dst:             RegQueryValueExW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:360,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:365,2'
          Dst:             ntlm_free_unicode_string
    - functionName:    get_computer_name
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 141
      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:121,6'
          Dst:             GetComputerNameExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:124,6'
          Dst:             GetLastError
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:127,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:132,7'
          Dst:             GetComputerNameExA
    - functionName:    ntlm_get_target_computer_name
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 305
      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:291,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:292,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:295,15'
          Dst:             get_computer_name
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:299,2'
          Dst:             CharUpperA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:301,11'
          Dst:             ntlm_from_unicode_string_utf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:304,10'
          Dst:             ntlm_is_unicode_string_empty
    - functionName:    ntlm_SetContextWorkstation
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 184
      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:173,18'
          Dst:             get_computer_name
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:179,21'
          Dst:             strlen
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:180,33'
          Dst:             ntlm_SetContextWorkstationX
    - functionName:    ntlm_SetContextWorkstationX
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 163
      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:147,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:148,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:153,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:155,26'
          Dst:             ntlm_from_unicode_string_w
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:157,26'
          Dst:             ntlm_from_unicode_string_utf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:159,6'
          Dst:             ntlm_is_unicode_string_empty
    - functionName:    ntlm_ContextFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 285
      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:256,2'
          Dst:             winpr_RC4_Free
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:257,2'
          Dst:             winpr_RC4_Free
        - 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:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:265,2'
          Dst:             sspi_SecBufferFree
        - 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:270,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:271,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:273,2'
          Dst:             ntlm_free_messages
    - functionName:    ntlm_ContextFromConfig
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 444
      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:373,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:375,15'
          Dst:             winpr_getApplicatonDetailsRegKey
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:381,8'
          Dst:             RegOpenKeyExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:390,9'
          Dst:             RegQueryValueExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:394,9'
          Dst:             RegQueryValueExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:398,9'
          Dst:             RegQueryValueExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:402,9'
          Dst:             RegQueryValueExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:406,9'
          Dst:             RegQueryValueExA
        - 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:412,11'
          Dst:             ntlm_try_set_from_registry
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:413,11'
          Dst:             ntlm_try_set_from_registry
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:414,11'
          Dst:             ntlm_try_set_from_registry
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:417,5'
          Dst:             RegCloseKey
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:424,6'
          Dst:             RegOpenKeyExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:432,7'
          Dst:             RegQueryValueExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:436,3'
          Dst:             RegCloseKey
    - functionName:    ntlm_ContextFillDefaultNames
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 327
      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:310,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:312,6'
          Dst:             ntlm_SetContextWorkstation
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:315,6'
          Dst:             ntlm_get_target_computer_name
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:318,6'
          Dst:             ntlm_get_target_computer_name
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:321,6'
          Dst:             ntlm_get_target_computer_name
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:324,6'
          Dst:             ntlm_get_target_computer_name
    - functionName:    ntlm_SetContextTargetName
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 249
      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:207,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:212,24'
          Dst:             get_computer_name
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:225,3'
          Dst:             CharUpperA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:229,2'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:230,33'
          Dst:             ConvertUtf8ToWCharAlloc
    - functionName:    ntlm_ContextNew
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 481
      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:450,41'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:465,2'
          Dst:             ntlm_change_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:471,7'
          Dst:             ntlm_ContextFillDefaultNames
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:473,7'
          Dst:             ntlm_ContextFromConfig
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:479,2'
          Dst:             ntlm_ContextFree
    - functionName:    ntlm_change_state
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1985
      functionLinenumberEnd: 1990
      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:1986,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1987,2'
          Dst:             ntlm_state_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1987,2'
          Dst:             ntlm_state_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1987,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ntlm_state_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1967
      functionLinenumberEnd: 1983
      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:1968,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    NTLM_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2028
      functionLinenumberEnd: 2034
      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:2029,2'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2031,2'
          Dst:             InitializeConstWCharFromUtf8
    - functionName:    ntlm_reset_cipher_state
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1999
      functionLinenumberEnd: 2025
      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:2000,26'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2004,8'
          Dst:             check_context_
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2007,3'
          Dst:             winpr_RC4_Free
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2008,3'
          Dst:             winpr_RC4_Free
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2009,26'
          Dst:             winpr_RC4_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2010,26'
          Dst:             winpr_RC4_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2014,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2019,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ntlm_get_state
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1993
      functionLinenumberEnd: 1995
      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:1994,2'
          Dst:             winpr_int_assert
    - functionName:    ntlm_message_type_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1952
      functionLinenumberEnd: 1964
      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:1953,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    ntlm_negotiate_flags_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1919
      functionLinenumberEnd: 1949
      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:1923,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1928,16'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1931,22'
          Dst:             ntlm_get_negotiate_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1932,24'
          Dst:             strlen
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1938,5'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1944,4'
          Dst:             winpr_str_append
    - functionName:    ntlm_SetCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1466
      functionLinenumberEnd: 1467
      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: 1380
      functionLinenumberEnd: 1417
      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:1391,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1387,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1394,11'
          Dst:             utf16len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1396,11'
          Dst:             utf16len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1398,11'
          Dst:             utf16len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1400,11'
          Dst:             utf16len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1402,11'
          Dst:             utf16len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1404,11'
          Dst:             ntml_setUnicodeStringW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1406,11'
          Dst:             ntml_setUnicodeStringW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1408,11'
          Dst:             ntml_setUnicodeStringW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1410,11'
          Dst:             ntml_setUnicodeStringW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1412,11'
          Dst:             ntml_setUnicodeStringW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1415,11'
          Dst:             ntlm_SetContextAttributesCommon
    - functionName:    ntlm_QueryContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1074
      functionLinenumberEnd: 1141
      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:1085,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1081,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1082,7'
          Dst:             check_context_
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1118,22'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1127,25'
          Dst:             _wcsdup
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1128,28'
          Dst:             _wcsdup
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1132,5'
          Dst:             sspi_ContextBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1139,11'
          Dst:             ntlm_QueryContextAttributesCommon
    - functionName:    ntlm_InitializeSecurityContextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 751
      functionLinenumberEnd: 860
      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_SecureHandleSetUpperPointer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:761,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:765,18'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:770,13'
          Dst:             ntlm_ContextNew
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:778,36'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:781,7'
          Dst:             ntlm_SetContextServicePrincipalNameW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:783,4'
          Dst:             ntlm_ContextFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:787,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:788,3'
          Dst:             sspi_SecureHandleSetUpperPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:791,26'
          Dst:             ntlm_get_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:799,19'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:807,7'
          Dst:             ntlm_get_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:808,4'
          Dst:             ntlm_change_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:810,7'
          Dst:             ntlm_get_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:811,11'
          Dst:             ntlm_write_NegotiateMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:823,33'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:831,7'
          Dst:             ntlm_get_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:833,13'
          Dst:             ntlm_read_ChallengeMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:844,20'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:852,8'
          Dst:             ntlm_get_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:853,12'
          Dst:             ntlm_write_AuthenticateMessage
    - functionName:    ntlm_AcquireCredentialsHandleW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 540
      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:         29
      ICount:          192
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - _strdup
        - sspi_CopyAuthIdentity
        - sspi_CredentialsFree
        - sspi_CredentialsNew
        - sspi_GetAuthIdentityFlags
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetUpperPointer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:498,34'
          Dst:             sspi_CredentialsNew
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:509,26'
          Dst:             sspi_GetAuthIdentityFlags
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:511,7'
          Dst:             sspi_CopyAuthIdentity
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:514,4'
          Dst:             sspi_CredentialsFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:526,40'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:529,5'
          Dst:             sspi_CredentialsFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:537,2'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:538,2'
          Dst:             sspi_SecureHandleSetUpperPointer
    - functionName:    ntlm_QueryCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 596
      functionLinenumberEnd: 604
      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:602,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ntlm_SetCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1474
      functionLinenumberEnd: 1475
      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: 1434
      functionLinenumberEnd: 1460
      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:1445,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1441,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1448,11'
          Dst:             ntml_setUnicodeStringA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1450,11'
          Dst:             ntml_setUnicodeStringA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1452,11'
          Dst:             ntml_setUnicodeStringA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1454,11'
          Dst:             ntml_setUnicodeStringA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1456,11'
          Dst:             ntml_setUnicodeStringA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1458,11'
          Dst:             ntlm_SetContextAttributesCommon
    - functionName:    ntlm_DecryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1602
      functionLinenumberEnd: 1716
      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:1611,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1612,7'
          Dst:             check_context_
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1645,8'
          Dst:             winpr_RC4_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1656,25'
          Dst:             winpr_HMAC_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1663,8'
          Dst:             winpr_HMAC_Init
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1666,3'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1668,8'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1670,8'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1672,8'
          Dst:             winpr_HMAC_Final
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1678,2'
          Dst:             winpr_HMAC_Free
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1693,7'
          Dst:             winpr_RC4_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1697,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1699,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1702,6'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1705,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ntlm_EncryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1488
      functionLinenumberEnd: 1597
      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:1496,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1497,7'
          Dst:             check_context_
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1528,25'
          Dst:             winpr_HMAC_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1534,8'
          Dst:             winpr_HMAC_Init
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1537,3'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1539,8'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1541,8'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1543,8'
          Dst:             winpr_HMAC_Final
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1550,2'
          Dst:             winpr_HMAC_Free
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1562,9'
          Dst:             winpr_RC4_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1581,7'
          Dst:             winpr_RC4_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1587,3'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1589,3'
          Dst:             winpr_Data_Write_UINT32
    - functionName:    ntlm_VerifySignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1780
      functionLinenumberEnd: 1831
      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:1789,26'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1790,7'
          Dst:             check_context_
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1804,25'
          Dst:             winpr_HMAC_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1806,7'
          Dst:             winpr_HMAC_Init
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1809,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1810,7'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1812,7'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1814,7'
          Dst:             winpr_HMAC_Final
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1817,7'
          Dst:             winpr_RC4_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1820,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1822,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1825,6'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1829,2'
          Dst:             winpr_HMAC_Free
    - functionName:    ntlm_MakeSignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1721
      functionLinenumberEnd: 1774
      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:1729,26'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1730,7'
          Dst:             check_context_
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1747,25'
          Dst:             winpr_HMAC_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1749,7'
          Dst:             winpr_HMAC_Init
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1752,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1753,7'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1755,7'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1757,7'
          Dst:             winpr_HMAC_Final
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1760,7'
          Dst:             winpr_RC4_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1764,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1766,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1772,2'
          Dst:             winpr_HMAC_Free
    - functionName:    ntlm_RevertSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1480
      functionLinenumberEnd: 1481
      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: 741
      functionLinenumberEnd: 742
      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: 1159
      functionLinenumberEnd: 1239
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          272
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - ConvertWCharNToUtf8
        - _strdup
        - ntlm_QueryContextAttributesCommon
        - sspi_ContextBufferAlloc
        - sspi_ContextBufferFree
        - sspi_SecureHandleGetLowerPointer
        - utf8len
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/NTLM/ntlm.c:1168,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1166,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1171,11'
          Dst:             utf8len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1173,11'
          Dst:             utf8len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1175,11'
          Dst:             utf8len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1177,11'
          Dst:             utf8len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1179,11'
          Dst:             utf8len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1182,4'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1188,4'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1194,4'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1200,4'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1206,4'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1215,22'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1224,25'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1225,28'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1229,5'
          Dst:             sspi_ContextBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1237,11'
          Dst:             ntlm_QueryContextAttributesCommon
    - functionName:    ntlm_DeleteSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 891
      functionLinenumberEnd: 895
      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:892,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:893,2'
          Dst:             sspi_SecureHandleInvalidate
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:894,2'
          Dst:             ntlm_ContextFree
    - functionName:    ntlm_AcceptSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 621
      functionLinenumberEnd: 736
      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:         59
      ICount:          381
      EdgeCount:       81
      CyclomaticComplexity: 24
      functionsReached:
        - ntlm_ContextNew
        - ntlm_SetContextTargetName
        - ntlm_change_state
        - ntlm_get_state
        - ntlm_read_AuthenticateMessage
        - ntlm_read_NegotiateMessage
        - ntlm_write_ChallengeMessage
        - sspi_FindSecBuffer
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetUpperPointer
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/NTLM/ntlm.c:657,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:631,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:635,13'
          Dst:             ntlm_ContextNew
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:645,36'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:651,8'
          Dst:             ntlm_SetContextTargetName
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:653,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:654,3'
          Dst:             sspi_SecureHandleSetUpperPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:657,10'
          Dst:             ntlm_get_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:661,4'
          Dst:             ntlm_change_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:669,19'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:677,13'
          Dst:             ntlm_read_NegotiateMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:681,8'
          Dst:             ntlm_get_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:689,21'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:697,12'
          Dst:             ntlm_write_ChallengeMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:711,19'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:719,13'
          Dst:             ntlm_read_AuthenticateMessage
    - functionName:    ntlm_InitializeSecurityContextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 870
      functionLinenumberEnd: 886
      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:876,20'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:881,11'
          Dst:             ntlm_InitializeSecurityContextW
    - functionName:    ntlm_FreeCredentialsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 590
      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:583,25'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:584,2'
          Dst:             sspi_SecureHandleInvalidate
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:588,2'
          Dst:             sspi_CredentialsFree
    - functionName:    ntlm_AcquireCredentialsHandleA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 547
      functionLinenumberEnd: 573
      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:554,15'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:560,13'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:566,6'
          Dst:             ntlm_AcquireCredentialsHandleW
    - functionName:    ntlm_QueryCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 610
      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:610,9'
          Dst:             ntlm_QueryCredentialsAttributesW
    - functionName:    kerberos_ATTR_PACKAGE_INFO_W
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1859
      functionLinenumberEnd: 1881
      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:1862,20'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1871,23'
          Dst:             _wcsdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1872,26'
          Dst:             _wcsdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1876,3'
          Dst:             sspi_ContextBufferFree
    - functionName:    kerberos_SetCredentialsAttributesX
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2073
      functionLinenumberEnd: 2131
      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:2088,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2080,16'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2112,28'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2123,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: 1653
      functionLinenumberEnd: 1665
      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:1654,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1655,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1656,2'
          Dst:             winpr_int_assert
    - functionName:    krb5_error_to_SECURITY_STATUS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1688
      functionLinenumberEnd: 1696
      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:1689,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    get_key
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 258
      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: 1886
      functionLinenumberEnd: 1955
      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:1907,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1893,11'
          Dst:             krb5_sname_to_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1893,11'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1898,7'
          Dst:             krb5_cc_get_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1898,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1905,7'
          Dst:             krb5_get_credentials
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1905,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1920,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1924,6'
          Dst:             krb5_auth_con_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1924,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1929,7'
          Dst:             krb5_fwd_tgt_creds
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1929,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1939,8'
          Dst:             copy_krb5_data
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1942,4'
          Dst:             krb5_free_data
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1952,2'
          Dst:             krb5_auth_con_free
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1953,2'
          Dst:             krb5_free_creds
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1954,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: 1757
      functionLinenumberEnd: 1826
      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:1760,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1761,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1762,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1764,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1768,23'
          Dst:             krb5_auth_con_getauthenticator
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1768,23'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1793,3'
          Dst:             strncpy
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1805,8'
          Dst:             krb5_unparse_name_flags
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1805,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1810,30'
          Dst:             strlen
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1815,4'
          Dst:             strncpy
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1820,3'
          Dst:             krb5_free_unparsed_name
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1825,2'
          Dst:             krb5_free_authenticator
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1826,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: 1700
      functionLinenumberEnd: 1752
      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:1706,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1707,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1718,8'
          Dst:             get_key
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1722,24'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1722,24'
          Dst:             krb5_c_crypto_length
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1722,24'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1725,11'
          Dst:             krb5_error_to_SECURITY_STATUS
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1727,8'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1727,8'
          Dst:             krb5_c_crypto_length
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1727,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1730,11'
          Dst:             krb5_error_to_SECURITY_STATUS
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1732,8'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1732,8'
          Dst:             krb5_c_crypto_length
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1732,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1735,11'
          Dst:             krb5_error_to_SECURITY_STATUS
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1743,24'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1743,24'
          Dst:             krb5_c_crypto_length
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1743,24'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1746,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: 1963
      functionLinenumberEnd: 1997
      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:1977,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1971,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1980,11'
          Dst:             kerberos_ATTR_SIZES
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1983,11'
          Dst:             kerberos_ATTR_AUTH_IDENTITY
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1987,11'
          Dst:             kerberos_ATTR_TICKET_LOGON
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1990,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    get_context
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1639
      functionLinenumberEnd: 1650
      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:1643,16'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1647,6'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1649,9'
          Dst:             sspi_SecureHandleGetLowerPointer
    - functionName:    kerberos_ATTR_PACKAGE_INFO_A
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1832
      functionLinenumberEnd: 1854
      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:1835,20'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1844,23'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1845,26'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1849,3'
          Dst:             sspi_ContextBufferFree
    - functionName:    retrieveTgtForPrincipal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1344
      functionLinenumberEnd: 1382
      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:1348,6'
          Dst:             krb5_kt_start_seq_get
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1348,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1354,7'
          Dst:             krb5_kt_next_entry
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1354,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1360,7'
          Dst:             krb5_principal_compare
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1362,8'
          Dst:             krb5_free_keytab_entry_contents
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1362,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1368,6'
          Dst:             krb5_kt_end_seq_get
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1368,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1375,6'
          Dst:             krb5_get_init_creds_keytab
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1375,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: 1386
      functionLinenumberEnd: 1454
      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:1392,6'
          Dst:             krb5_parse_name_flags
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1392,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1408,8'
          Dst:             krb5_get_default_realm
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1408,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1413,46'
          Dst:             strlen
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1423,6'
          Dst:             retrieveTgtForPrincipal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1437,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1439,3'
          Dst:             krb5_free_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1441,8'
          Dst:             krb5_parse_name_flags
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1441,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1445,8'
          Dst:             retrieveTgtForPrincipal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1450,3'
          Dst:             krb5_free_default_realm
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1452,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: 1264
      functionLinenumberEnd: 1266
      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:1265,3'
          Dst:             winpr_int_assert
    - functionName:    append
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 748
      functionLinenumberEnd: 756
      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:749,22'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:750,22'
          Dst:             strlen
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:753,7'
          Dst:             strncat
    - functionName:    kerberos_rd_tgt_req_tag3
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 815
      functionLinenumberEnd: 830
      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:819,7'
          Dst:             WinPrAsn1DecReadGeneralString
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:822,7'
          Dst:             append
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:824,7'
          Dst:             append
    - functionName:    kerberos_rd_tgt_req_tag2
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 759
      functionLinenumberEnd: 811
      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:761,25'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:764,7'
          Dst:             WinPrAsn1DecReadSequence
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:772,9'
          Dst:             WinPrAsn1DecReadContextualInteger
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:777,8'
          Dst:             WinPrAsn1DecReadContextualSequence
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:784,10'
          Dst:             WinPrAsn1DecPeekTag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:788,9'
          Dst:             WinPrAsn1DecReadGeneralString
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:793,10'
          Dst:             append
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:798,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: 1324
      functionLinenumberEnd: 1326
      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:1325,3'
          Dst:             winpr_int_assert
    - functionName:    kerberos_rd_tgt_rep
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 887
      functionLinenumberEnd: 908
      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:892,31'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:894,6'
          Dst:             WinPrAsn1DecReadContextualTag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:900,14'
          Dst:             WinPrAsn1DecGetStream
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:901,17'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:903,21'
          Dst:             Stream_Length
    - functionName:    kerberos_rd_tgt_req
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 834
      functionLinenumberEnd: 884
      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:841,14'
          Dst:             WinPrAsn1DecGetStream
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:842,21'
          Dst:             Stream_Length
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:846,26'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:848,6'
          Dst:             WinPrAsn1DecReadContextualTag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:851,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:862,8'
          Dst:             kerberos_rd_tgt_req_tag2
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:865,23'
          Dst:             WinPrAsn1DecReadContextualTag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:874,9'
          Dst:             kerberos_rd_tgt_req_tag3
    - functionName:    isValidIPv6
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 272
      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:271,15'
          Dst:             inet_pton
    - functionName:    isValidIPv4
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 265
      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:264,15'
          Dst:             inet_pton
    - functionName:    kerberos_ContextFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 218
      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:208,5'
          Dst:             krb5_auth_con_free
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:210,4'
          Dst:             krb5glue_keys_free
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:213,3'
          Dst:             credentials_unref
    - functionName:    credentials_unref
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 592
      functionLinenumberEnd: 612
      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:593,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:595,6'
          Dst:             InterlockedDecrement
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:603,4'
          Dst:             krb5_cc_destroy
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:605,4'
          Dst:             krb5_cc_close
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:608,3'
          Dst:             krb5_kt_close
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:610,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: 949
      functionLinenumberEnd: 988
      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:952,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:953,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:956,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:957,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:961,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:965,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:966,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:969,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:970,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:974,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:978,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:979,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:983,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: 911
      functionLinenumberEnd: 946
      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:936,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:915,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:920,25'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:921,2'
          Dst:             WinPrAsn1Decoder_InitMem
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:924,25'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:925,7'
          Dst:             WinPrAsn1DecReadSequence
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:929,7'
          Dst:             WinPrAsn1DecReadContextualInteger
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:933,7'
          Dst:             WinPrAsn1DecReadContextualInteger
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:939,11'
          Dst:             kerberos_rd_tgt_req
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:941,11'
          Dst:             kerberos_rd_tgt_rep
    - functionName:    kerberos_mk_tgt_token
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 663
      functionLinenumberEnd: 745
      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:671,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:678,8'
          Dst:             WinPrAsn1Encoder_New
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:683,7'
          Dst:             WinPrAsn1EncSeqContainer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:687,7'
          Dst:             WinPrAsn1EncContextualInteger
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:691,7'
          Dst:             WinPrAsn1EncContextualInteger
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:697,8'
          Dst:             WinPrAsn1EncContextualSeqContainer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:701,8'
          Dst:             WinPrAsn1EncContextualInteger
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:705,8'
          Dst:             WinPrAsn1EncContextualSeqContainer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:708,8'
          Dst:             WinPrAsn1EncGeneralString
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:711,16'
          Dst:             WinPrAsn1EncGeneralString
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:714,8'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:714,42'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:722,8'
          Dst:             WinPrAsn1EncContextualRawContent
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:726,7'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:729,7'
          Dst:             WinPrAsn1EncStreamSize
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:732,2'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:733,7'
          Dst:             WinPrAsn1EncToStream
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:738,6'
          Dst:             sspi_gss_wrap_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:743,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: 221
      functionLinenumberEnd: 231
      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:224,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:229,2'
          Dst:             InterlockedIncrement
    - functionName:    isValidIP
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 277
      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:277,9'
          Dst:             isValidIPv4
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:277,35'
          Dst:             isValidIPv6
    - functionName:    get_realm_name
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 294
      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:285,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:291,8'
          Dst:             winpr_asprintf
    - functionName:    krb5_prompter
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 252
      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:240,27'
          Dst:             krb5glue_get_prompt_type
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:243,29'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:245,23'
          Dst:             strlen
    - functionName:    build_krbtgt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 328
      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:317,15'
          Dst:             get_realm_name
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:323,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: 2565
      functionLinenumberEnd: 2570
      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:2566,2'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2568,2'
          Dst:             InitializeConstWCharFromUtf8
    - functionName:    kerberos_SetCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2136
      functionLinenumberEnd: 2137
      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:2137,9'
          Dst:             kerberos_SetCredentialsAttributesX
    - functionName:    kerberos_SetContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2058
      functionLinenumberEnd: 2059
      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: 2029
      functionLinenumberEnd: 2053
      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:2043,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2037,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2046,11'
          Dst:             kerberos_ATTR_PACKAGE_INFO_W
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2052,9'
          Dst:             kerberos_QueryContextAttributesCommon
    - functionName:    kerberos_InitializeSecurityContextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1320
      functionLinenumberEnd: 1339
      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:1326,17'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1331,11'
          Dst:             kerberos_InitializeSecurityContextA
    - functionName:    kerberos_InitializeSecurityContextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 999
      functionLinenumberEnd: 1314
      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:1111,2'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/sspi/Kerberos/kerberos.c:1292,3'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1021,33'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1027,12'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1034,18'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1035,21'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1038,19'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1049,12'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1055,10'
          Dst:             strchr
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1063,7'
          Dst:             isValidIP
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1072,13'
          Dst:             kerberos_ContextNew
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1082,26'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1099,25'
          Dst:             sspi_gss_unwrap_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1101,25'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1102,26'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1115,9'
          Dst:             kerberos_mk_tgt_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1127,9'
          Dst:             kerberos_rd_tgt_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1137,8'
          Dst:             krb5_auth_con_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1137,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1139,8'
          Dst:             krb5_auth_con_setflags
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1139,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1142,8'
          Dst:             krb5_auth_con_set_req_cksumtype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1142,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1147,8'
          Dst:             krb5_sname_to_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1147,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1151,8'
          Dst:             krb5_cc_get_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1151,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1158,8'
          Dst:             krb5_get_credentials
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1158,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1169,4'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1170,4'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1189,11'
          Dst:             winpr_Digest_New
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1193,10'
          Dst:             winpr_Digest_Init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1196,10'
          Dst:             kerberos_hash_channel_bindings
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1199,10'
          Dst:             winpr_Digest_Final
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1204,8'
          Dst:             krb5_mk_req_extended
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1204,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1208,9'
          Dst:             sspi_gss_wrap_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1215,9'
          Dst:             krb5_auth_con_getlocalseqnumber
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1215,9'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1221,8'
          Dst:             krb5glue_update_keyset
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1221,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1237,9'
          Dst:             krb5_rd_rep
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1237,9'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1240,5'
          Dst:             krb5_free_ap_rep_enc_part
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1244,5'
          Dst:             krb5glue_log_error
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1252,9'
          Dst:             krb5_auth_con_getremoteseqnumber
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1252,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:1270,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1279,2'
          Dst:             krb5_free_cred_contents
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1282,2'
          Dst:             krb5_free_creds
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1284,3'
          Dst:             krb5_free_data_contents
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1286,2'
          Dst:             winpr_Digest_Free
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1296,5'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1297,5'
          Dst:             sspi_SecureHandleSetUpperPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1300,5'
          Dst:             kerberos_ContextFree
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1301,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: 561
      functionLinenumberEnd: 587
      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:568,15'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:574,13'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:580,6'
          Dst:             kerberos_AcquireCredentialsHandleA
    - functionName:    kerberos_AcquireCredentialsHandleA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 555
      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:         161
      ICount:          758
      EdgeCount:       206
      CyclomaticComplexity: 47
      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:355,26'
          Dst:             sspi_GetAuthIdentityFlags
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:360,8'
          Dst:             sspi_CopyAuthIdentityFieldsA
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:363,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:371,6'
          Dst:             krb5_init_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:371,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:376,19'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:380,3'
          Dst:             CharUpperA
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:382,24'
          Dst:             krb5_set_default_realm
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:382,24'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:391,25'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:396,13'
          Dst:             strchr
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:398,4'
          Dst:             CharUpperA
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:400,24'
          Dst:             krb5_parse_name
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:400,24'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:405,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:410,8'
          Dst:             krb5_cc_set_default_name
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:410,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:419,7'
          Dst:             krb5_cc_cache_match
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:423,9'
          Dst:             krb5_cc_new_unique
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:423,9'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:428,9'
          Dst:             krb5_cc_resolve
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:428,9'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:432,8'
          Dst:             krb5_cc_initialize
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:432,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:437,8'
          Dst:             krb5_cc_default
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:437,8'
          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,7'
          Dst:             krb5_cc_default
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:446,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:448,7'
          Dst:             krb5_cc_get_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:448,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:450,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:457,8'
          Dst:             krb5_cc_new_unique
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:457,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:462,8'
          Dst:             krb5_cc_resolve
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:462,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:465,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:470,7'
          Dst:             krb5_kt_resolve
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:470,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:476,8'
          Dst:             krb5_kt_default
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:476,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:487,3'
          Dst:             krb5_timeofday
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:491,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:492,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:493,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:494,7'
          Dst:             build_krbtgt
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:494,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:497,12'
          Dst:             krb5_cc_retrieve_cred
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:498,3'
          Dst:             krb5_free_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:499,3'
          Dst:             krb5_free_cred_contents
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:502,8'
          Dst:             krb5glue_get_init_creds
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:502,8'
          Dst:             krb5_prompter
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:502,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:508,16'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:524,3'
          Dst:             krb5_free_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:532,6'
          Dst:             krb5_cc_destroy
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:534,6'
          Dst:             krb5_cc_close
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:537,5'
          Dst:             krb5_kt_close
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:539,4'
          Dst:             krb5_free_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:546,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:547,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: 635
      functionLinenumberEnd: 650
      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:637,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:642,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    kerberos_SetCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2143
      functionLinenumberEnd: 2144
      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:2144,9'
          Dst:             kerberos_SetCredentialsAttributesX
    - functionName:    kerberos_SetContextAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2065
      functionLinenumberEnd: 2066
      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: 2242
      functionLinenumberEnd: 2341
      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:2244,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2253,32'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2254,27'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2261,26'
          Dst:             winpr_Data_Get_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2263,22'
          Dst:             winpr_Data_Get_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2264,23'
          Dst:             winpr_Data_Get_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2265,26'
          Dst:             winpr_Data_Get_UINT64_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2286,21'
          Dst:             get_key
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2299,6'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2299,6'
          Dst:             krb5_c_crypto_length_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2299,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2326,6'
          Dst:             krb5_k_decrypt_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2326,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2330,2'
          Dst:             winpr_Data_Write_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2331,2'
          Dst:             winpr_Data_Write_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2332,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: 2151
      functionLinenumberEnd: 2236
      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:2153,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2174,15'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2175,16'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2186,8'
          Dst:             get_key
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2199,6'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2199,6'
          Dst:             krb5_c_crypto_length_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2199,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2215,2'
          Dst:             winpr_Data_Write_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2216,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2216,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2218,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2219,2'
          Dst:             winpr_Data_Write_UINT64_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2226,41'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2226,41'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2226,2'
          Dst:             winpr_Data_Write_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2228,6'
          Dst:             krb5_k_encrypt_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2228,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: 2419
      functionLinenumberEnd: 2498
      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:2434,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2441,15'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2442,16'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2449,11'
          Dst:             winpr_Data_Get_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2451,11'
          Dst:             winpr_Data_Get_UINT64_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2460,6'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2467,8'
          Dst:             get_key
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2476,6'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2476,6'
          Dst:             krb5_c_crypto_length_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2476,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2487,6'
          Dst:             krb5_k_verify_checksum_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2487,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: 2347
      functionLinenumberEnd: 2413
      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:2349,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2367,15'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2368,16'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2375,8'
          Dst:             get_key
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2385,6'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2385,6'
          Dst:             krb5_c_crypto_length_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2385,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2394,2'
          Dst:             winpr_Data_Write_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2395,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2395,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2397,2'
          Dst:             winpr_Data_Write_UINT64_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2404,6'
          Dst:             krb5_k_make_checksum_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2404,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: 2001
      functionLinenumberEnd: 2025
      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:2015,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2009,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2018,11'
          Dst:             kerberos_ATTR_PACKAGE_INFO_A
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2024,9'
          Dst:             kerberos_QueryContextAttributesCommon
    - functionName:    kerberos_DeleteSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1670
      functionLinenumberEnd: 1683
      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:1672,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1673,2'
          Dst:             sspi_SecureHandleInvalidate
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1677,2'
          Dst:             kerberos_ContextFree
    - functionName:    kerberos_AcceptSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1463
      functionLinenumberEnd: 1635
      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:1613,3'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1483,25'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1484,33'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1487,18'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1489,19'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1494,7'
          Dst:             sspi_gss_unwrap_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1500,13'
          Dst:             kerberos_ContextNew
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1503,7'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1508,12'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1515,25'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1516,26'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1522,8'
          Dst:             kerberos_rd_tgt_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1525,8'
          Dst:             retrieveSomeTgt
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1528,8'
          Dst:             kerberos_mk_tgt_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1531,7'
          Dst:             krb5_auth_con_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1531,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1534,7'
          Dst:             krb5_auth_con_setuseruserkey
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1534,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1542,7'
          Dst:             krb5_rd_req
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1542,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1546,7'
          Dst:             krb5_auth_con_setflags
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1546,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1551,7'
          Dst:             krb5_auth_con_getauthenticator
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1551,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1554,8'
          Dst:             krb5glue_authenticator_validate_chksum
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1562,8'
          Dst:             krb5_mk_rep
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1562,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1564,9'
          Dst:             sspi_gss_wrap_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1581,8'
          Dst:             krb5_auth_con_getlocalseqnumber
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1581,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1584,8'
          Dst:             krb5_auth_con_getremoteseqnumber
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1584,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1589,7'
          Dst:             krb5glue_update_keyset
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1589,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1607,3'
          Dst:             krb5_free_data_contents
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1609,3'
          Dst:             krb5_free_keytab_entry_contents
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1617,5'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1618,5'
          Dst:             sspi_SecureHandleSetUpperPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1621,5'
          Dst:             kerberos_ContextFree
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1622,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: 617
      functionLinenumberEnd: 630
      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:619,33'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:620,2'
          Dst:             sspi_SecureHandleInvalidate
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:624,2'
          Dst:             credentials_unref
    - functionName:    kerberos_QueryCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 655
      functionLinenumberEnd: 656
      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:656,9'
          Dst:             kerberos_QueryCredentialsAttributesW
    - functionName:    krb_log_context_encryption
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          82
      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
      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,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:179,3'
          Dst:             krb5_free_data_contents
        - 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_error_message
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:186,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: 1264
      functionLinenumberEnd: 1266
      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:1265,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:1325,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_SecureHandleGetUpperPointer
        - strncmp
        - 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,22'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:672,6'
          Dst:             strncmp
        - 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: 1463
      functionLinenumberEnd: 1495
      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:1464,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1465,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1466,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1471,7'
          Dst:             negotiate_get_config
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1473,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1477,19'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1479,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1483,14'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1485,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1489,15'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1491,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    NEGOTIATE_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1767
      functionLinenumberEnd: 1773
      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:1768,2'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1770,2'
          Dst:             InitializeConstWCharFromUtf8
    - functionName:    negotiate_SetCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1394
      functionLinenumberEnd: 1421
      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:1396,20'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1405,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1406,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1407,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1408,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1415,4'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1415,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    negotiate_SetContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1356
      functionLinenumberEnd: 1370
      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:1357,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1362,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1363,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1364,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_QueryContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1319
      functionLinenumberEnd: 1333
      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:1320,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1325,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1326,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1327,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_SecureHandleSetUpperPointer
        - 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_SecureHandleSetUpperPointer
        - 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: 1501
      functionLinenumberEnd: 1533
      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_SecureHandleSetUpperPointer
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1502,20'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1513,8'
          Dst:             checkMechCredValid
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1516,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1517,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1523,4'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1523,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1530,2'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1531,2'
          Dst:             sspi_SecureHandleSetUpperPointer
    - functionName:    negotiate_QueryCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1577
      functionLinenumberEnd: 1579
      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:1578,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    negotiate_SetCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1426
      functionLinenumberEnd: 1459
      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:1429,20'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1441,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1442,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1443,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1444,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1453,4'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1453,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    negotiate_SetContextAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1375
      functionLinenumberEnd: 1389
      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:1376,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1381,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1382,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1383,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_DecryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1639
      functionLinenumberEnd: 1656
      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:1640,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1648,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1649,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1650,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_EncryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1617
      functionLinenumberEnd: 1634
      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:1618,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1626,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1627,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1628,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_VerifySignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1683
      functionLinenumberEnd: 1700
      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:1684,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1692,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1693,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1694,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_MakeSignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1661
      functionLinenumberEnd: 1678
      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:1662,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1670,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1671,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1672,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_RevertSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1313
      functionLinenumberEnd: 1314
      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: 1307
      functionLinenumberEnd: 1308
      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: 1337
      functionLinenumberEnd: 1351
      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:1338,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1343,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1344,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1345,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_DeleteSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1284
      functionLinenumberEnd: 1303
      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:1286,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1287,2'
          Dst:             sspi_SecureHandleInvalidate
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1293,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1294,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1295,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1301,2'
          Dst:             negotiate_ContextFree
    - functionName:    negotiate_CompleteAuthToken
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1266
      functionLinenumberEnd: 1281
      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:1269,32'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1274,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1275,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1276,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_AcceptSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1031
      functionLinenumberEnd: 1262
      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:         148
      ICount:          908
      EdgeCount:       205
      CyclomaticComplexity: 59
      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_SecureHandleSetUpperPointer
      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:1124,7'
          Dst:             IsSecurityStatusError
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1135,32'
          Dst:             WinPrAsn1DecPeekTag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1138,9'
          Dst:             WinPrAsn1DecReadOID
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1141,24'
          Dst:             negotiate_GetMechByOID
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1142,4'
          Dst:             negotiate_mech_name
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1142,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1148,30'
          Dst:             negotiate_FindCredential
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1155,13'
          Dst:             negotiate_ContextNew
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1158,9'
          Dst:             IsSecurityStatusError
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1163,3'
          Dst:             sspi_SecureHandleSetUpperPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1164,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1188,3'
          Dst:             negotiate_mech_name
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1188,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1192,14'
          Dst:             negotiate_FindCredential
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1203,8'
          Dst:             negotiate_read_neg_token
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1220,8'
          Dst:             IsSecurityStatusError
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1238,13'
          Dst:             negotiate_mic_exchange
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1258,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: 1591
      functionLinenumberEnd: 1612
      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:1592,20'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1593,2'
          Dst:             sspi_SecureHandleInvalidate
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1601,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1602,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1603,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1604,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1607,4'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1607,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    negotiate_AcquireCredentialsHandleA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1539
      functionLinenumberEnd: 1572
      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_SecureHandleSetUpperPointer
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1540,20'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1552,8'
          Dst:             checkMechCredValid
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1555,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1556,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1562,4'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1562,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1569,2'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1570,2'
          Dst:             sspi_SecureHandleSetUpperPointer
    - functionName:    negotiate_QueryCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1585
      functionLinenumberEnd: 1587
      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:1586,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: 1291
      functionLinenumberEnd: 1293
      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:1292,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: 1324
      functionLinenumberEnd: 1326
      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:1325,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:    WinPR_GetSCardApiFunctionTable
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1363
      functionLinenumberEnd: 1364
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SCardEstablishContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:131,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:131,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:131,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardReleaseContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:136,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:136,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:136,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardIsValidContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:141,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:141,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:141,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardListReaderGroupsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:148,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:148,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:148,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardListReaderGroupsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:155,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:155,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:155,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardListReadersA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:162,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:162,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:162,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardListReadersW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:169,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:169,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:169,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardListCardsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          107
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:177,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:177,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:177,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardListCardsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          107
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:186,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:186,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:186,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardListInterfacesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:195,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:195,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:195,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardListInterfacesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:204,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:204,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:204,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardGetProviderIdA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:212,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:212,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:212,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardGetProviderIdW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:219,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:219,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:219,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardGetCardTypeProviderNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          104
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:228,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:228,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:228,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardGetCardTypeProviderNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          104
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:238,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:238,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:238,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardIntroduceReaderGroupA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:245,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:245,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:245,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardIntroduceReaderGroupW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:251,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:251,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:251,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardForgetReaderGroupA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:257,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:257,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:257,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardForgetReaderGroupW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:263,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:263,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:263,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardIntroduceReaderA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:270,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:270,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:270,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardIntroduceReaderW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:277,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:277,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:277,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardForgetReaderA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:283,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:283,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:283,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardForgetReaderW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:289,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:289,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:289,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardAddReaderToGroupA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:296,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:296,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:296,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardAddReaderToGroupW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:303,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:303,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:303,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardRemoveReaderFromGroupA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:310,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:310,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:310,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardRemoveReaderFromGroupW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:317,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:317,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:317,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardIntroduceCardTypeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          113
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:325,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:325,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:325,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardIntroduceCardTypeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          113
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:334,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:334,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:334,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardSetCardTypeProviderNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:343,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:343,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:343,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardSetCardTypeProviderNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:352,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:352,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:352,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardForgetCardTypeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:359,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:359,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:359,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardForgetCardTypeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:365,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:365,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:365,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardFreeMemory
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:370,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:370,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:370,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardAccessStartedEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          89
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:375,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:375,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:375,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardReleaseStartedEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          84
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:380,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:380,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:380,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardLocateCardsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:388,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:388,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:388,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardLocateCardsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:396,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:396,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:396,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardLocateCardsByATRA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          104
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:403,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:403,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:403,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardLocateCardsByATRW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          104
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:411,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:411,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:411,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardGetStatusChangeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:418,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:418,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:418,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardGetStatusChangeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:424,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:424,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:424,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardCancel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:429,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:429,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:429,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardConnectA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 440
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          107
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:438,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:438,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:438,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardConnectW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          107
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:448,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:448,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:448,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardReconnect
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          104
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:457,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:457,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:457,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardDisconnect
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:463,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:463,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:463,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardBeginTransaction
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:468,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:468,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:468,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardEndTransaction
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 475
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:474,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:474,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:474,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardCancelTransaction
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 480
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:479,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:479,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:479,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardState
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          104
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:486,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:486,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:486,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardStatusA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          110
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:494,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:494,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:494,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardStatusW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          110
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:503,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:503,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:503,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardTransmit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          110
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:511,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:511,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:511,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardGetTransmitCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:518,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:518,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:518,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardControl
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - size_t
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          110
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:526,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:526,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:526,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardGetAttrib
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:533,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:533,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:533,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardSetAttrib
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:539,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:539,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:539,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardUIDlgSelectCardA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:544,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:544,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:544,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardUIDlgSelectCardW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 550
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:549,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:549,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:549,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetOpenCardNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:554,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:554,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:554,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetOpenCardNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 558
      functionLinenumberEnd: 560
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:559,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:559,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:559,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardDlgExtendedError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          89
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:564,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:564,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:564,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardReadCacheA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 572
      functionLinenumberEnd: 575
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          107
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:573,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:573,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:573,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardReadCacheW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 582
      functionLinenumberEnd: 585
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          107
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:583,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:583,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:583,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardWriteCacheA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 592
      functionLinenumberEnd: 595
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          107
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:593,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:593,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:593,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardWriteCacheW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 605
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          107
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:603,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:603,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:603,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardGetReaderIconA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 610
      functionLinenumberEnd: 612
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:611,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:611,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:611,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardGetReaderIconW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 619
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:618,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:618,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:618,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardGetDeviceTypeIdA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:625,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:625,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:625,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardGetDeviceTypeIdW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 633
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:632,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:632,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:632,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardGetReaderDeviceInstanceIdA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 638
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:639,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:639,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:639,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardGetReaderDeviceInstanceIdW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 646
      functionLinenumberEnd: 649
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:647,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:647,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:647,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardListReadersWithDeviceInstanceIdA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 653
      functionLinenumberEnd: 656
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:654,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:654,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:654,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardListReadersWithDeviceInstanceIdW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 660
      functionLinenumberEnd: 663
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:661,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:661,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:661,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCardAudit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 666
      functionLinenumberEnd: 668
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSCardApiStubs
        - WLog_Print_dbg_tag
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:667,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:667,2'
          Dst:             InitializeSCardApiStubs
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:667,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    InitializeSCardApiStubs
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PCSC_GetSCardApiFunctionTable
        - PCSC_InitializeSCardApi
      functionUses:    76
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:115,6'
          Dst:             PCSC_InitializeSCardApi
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:116,16'
          Dst:             PCSC_GetSCardApiFunctionTable
    - 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:    76
      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:    WinSCard_LoadApiTableFunctions
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1196
      functionLinenumberEnd: 1277
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         167
      ICount:          1030
      EdgeCount:       167
      CyclomaticComplexity: 2
      functionsReached:
        - GetProcAddress
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1197,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1198,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1200,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1201,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1202,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1203,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1204,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1205,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1206,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1207,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1208,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1209,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1210,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1211,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1212,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1213,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1214,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1215,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1216,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1217,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1218,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1219,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1220,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1221,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1222,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1223,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1224,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1225,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1226,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1227,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1228,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1229,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1230,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1231,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1232,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1233,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1234,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1235,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1236,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1237,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1238,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1239,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1240,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1241,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1242,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1243,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1244,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1245,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1246,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1247,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1248,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1249,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1250,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1251,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1252,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1253,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1254,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1255,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1256,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1257,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1258,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1259,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1260,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1261,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1262,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1263,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1264,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1265,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1266,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1267,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1268,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1269,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1270,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1271,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1272,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1273,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1274,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1275,2'
          Dst:             GetProcAddress
    - functionName:    SCardGetReaderStateString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1139
      functionLinenumberEnd: 1183
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          212
      EdgeCount:       55
      CyclomaticComplexity: 15
      functionsReached:
        - calloc
        - winpr_str_append
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1141,17'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1147,3'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1150,3'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1153,3'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1156,3'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1159,3'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1162,3'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1165,3'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1168,3'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1171,3'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1174,3'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1177,3'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/smartcard/smartcard.c:1180,3'
          Dst:             winpr_str_append
    - functionName:    SCardGetCardStateString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1109
      functionLinenumberEnd: 1136
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       18
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/smartcard/smartcard.c:1110,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    SCardGetScopeString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1091
      functionLinenumberEnd: 1106
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       10
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/smartcard/smartcard.c:1092,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    SCardGetDispositionString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1073
      functionLinenumberEnd: 1088
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       10
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/smartcard/smartcard.c:1074,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    SCardGetShareModeString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1055
      functionLinenumberEnd: 1070
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       10
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/smartcard/smartcard.c:1056,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    SCardGetProtocolString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1023
      functionLinenumberEnd: 1052
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          94
      EdgeCount:       28
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SCardGetAttributeString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 885
      functionLinenumberEnd: 1020
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         46
      ICount:          232
      EdgeCount:       90
      CyclomaticComplexity: 46
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/smartcard/smartcard.c:886,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    SCardGetErrorString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard.c'
      linkageType:     InternalLinkage
      functionLinenumber: 675
      functionLinenumberEnd: 882
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         70
      ICount:          352
      EdgeCount:       138
      CyclomaticComplexity: 70
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/smartcard/smartcard.c:676,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    card_id_and_name_w
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2972
      functionLinenumberEnd: 2980
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - card_id_and_name_a
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2974,14'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2977,8'
          Dst:             card_id_and_name_a
    - functionName:    card_id_and_name_a
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2953
      functionLinenumberEnd: 2968
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          111
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - snprintf
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2957,15'
          Dst:             strlen
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2962,8'
          Dst:             snprintf
    - functionName:    PCSC_ReadDeviceSystemNameGet
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2636
      functionLinenumberEnd: 2677
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - size_t
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          269
      EdgeCount:       68
      CyclomaticComplexity: 13
      functionsReached:
        - ConvertMszUtf8NToWCharAlloc
        - calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2647,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2661,16'
          Dst:             ConvertMszUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2669,15'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2669,15'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2675,16'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2675,16'
          Dst:             winpr_int_assert
    - functionName:    PCSC_ReadDeviceSystemName
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2681
      functionLinenumberEnd: 2714
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - size_t
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          131
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - PCSC_AddMemoryBlock
        - PCSC_ReadDeviceSystemNameGet
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2684,18'
          Dst:             PCSC_ReadDeviceSystemNameGet
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2690,8'
          Dst:             PCSC_AddMemoryBlock
    - functionName:    PCSC_AddMemoryBlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 729
      functionLinenumberEnd: 733
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ListDictionary_Add
        - init
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:730,7'
          Dst:             init
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:732,9'
          Dst:             ListDictionary_Add
    - functionName:    init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - initializeHandles
        - winpr_InitOnceExecuteOnce
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:316,9'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:316,9'
          Dst:             initializeHandles
    - functionName:    initializeHandles
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - ListDictionary_New
        - ListDictionary_ValueObject
        - atexit
        - clearHandles
        - setupWithValueObjectFree
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:295,8'
          Dst:             atexit
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:295,8'
          Dst:             clearHandles
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:296,18'
          Dst:             setupWithValueObjectFree
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:299,19'
          Dst:             ListDictionary_New
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:303,18'
          Dst:             ListDictionary_ValueObject
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:309,19'
          Dst:             setupWithValueObjectFree
    - functionName:    clearHandles
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ListDictionary_Free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:249,2'
          Dst:             ListDictionary_Free
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:250,2'
          Dst:             ListDictionary_Free
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:251,2'
          Dst:             ListDictionary_Free
    - functionName:    setupWithValueObjectFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          66
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - ListDictionary_KeyObject
        - ListDictionary_New
        - ListDictionary_ValueObject
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:261,26'
          Dst:             ListDictionary_New
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:266,18'
          Dst:             ListDictionary_ValueObject
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:268,10'
          Dst:             ListDictionary_KeyObject
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:269,3'
          Dst:             winpr_int_assert
    - functionName:    cardContextFreeVoid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cardContextFree
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:288,2'
          Dst:             cardContextFree
    - functionName:    cardContextFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - DeleteCriticalSection
        - HashTable_Free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:280,2'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:281,2'
          Dst:             HashTable_Free
    - functionName:    PCSC_SCardGetAttrib_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2462
      functionLinenumberEnd: 2528
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          223
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - PCSC_AddMemoryBlock
        - PCSC_GetCardContextFromHandle
        - PCSC_GetCardHandleData
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCard_LogError
        - PCSC_WaitForCardAccess
        - calloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2471,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2473,10'
          Dst:             PCSC_GetCardHandleData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2478,2'
          Dst:             PCSC_WaitForCardAccess
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2479,13'
          Dst:             PCSC_GetCardContextFromHandle
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2503,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2516,5'
          Dst:             PCSC_AddMemoryBlock
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2527,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_SCard_LogError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:332,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PCSC_GetCardHandleData
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 552
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ListDictionary_GetItemValue
        - init
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:553,7'
          Dst:             init
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:557,25'
          Dst:             ListDictionary_GetItemValue
    - functionName:    PCSC_WaitForCardAccess
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 629
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          128
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - PCSC_GetCardContextData
        - PCSC_GetCardHandleData
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:586,14'
          Dst:             PCSC_GetCardContextData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:598,10'
          Dst:             PCSC_GetCardHandleData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:605,13'
          Dst:             PCSC_GetCardContextData
    - functionName:    PCSC_GetCardContextFromHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 575
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PCSC_GetCardHandleData
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:569,10'
          Dst:             PCSC_GetCardHandleData
    - functionName:    PCSC_MapErrorCodeToWinSCard
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          30
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    20
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_GetCardContextData
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 454
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ListDictionary_GetItemValue
        - init
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:455,7'
          Dst:             init
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:459,26'
          Dst:             ListDictionary_GetItemValue
    - 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:    PCSC_SCardGetAttrib_FriendlyName
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2534
      functionLinenumberEnd: 2632
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         99
      ICount:          453
      EdgeCount:       120
      CyclomaticComplexity: 23
      functionsReached:
        - ConvertMszWCharNToUtf8Alloc
        - ConvertUtf8NToWCharAlloc
        - PCSC_AddMemoryBlock
        - PCSC_GetCardContextFromHandle
        - PCSC_SCardFreeMemory_Internal
        - PCSC_SCardGetAttrib_Internal
        - strndup
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2538,26'
          Dst:             PCSC_GetCardContextFromHandle
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2547,16'
          Dst:             PCSC_SCardGetAttrib_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2555,12'
          Dst:             PCSC_SCardGetAttrib_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2561,14'
          Dst:             ConvertMszWCharNToUtf8Alloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2562,3'
          Dst:             PCSC_SCardFreeMemory_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2566,14'
          Dst:             strndup
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2571,3'
          Dst:             PCSC_SCardFreeMemory_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2574,18'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2579,26'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2590,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2593,5'
          Dst:             PCSC_AddMemoryBlock
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2598,19'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2598,19'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2615,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2617,4'
          Dst:             PCSC_AddMemoryBlock
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2621,18'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2621,18'
          Dst:             winpr_int_assert
    - functionName:    PCSC_SCardFreeMemory_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1503
      functionLinenumberEnd: 1516
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_RemoveMemoryBlock
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1506,6'
          Dst:             PCSC_RemoveMemoryBlock
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1516,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_RemoveMemoryBlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 737
      functionLinenumberEnd: 744
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ListDictionary_Take
        - init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:740,7'
          Dst:             init
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:743,9'
          Dst:             ListDictionary_Take
    - functionName:    PCSC_ConvertCardStateToWinSCard
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          117
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardStatus_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2032
      functionLinenumberEnd: 2187
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         89
      ICount:          491
      EdgeCount:       119
      CyclomaticComplexity: 32
      functionsReached:
        - ConvertMszUtf8NToWCharAlloc
        - PCSC_AddMemoryBlock
        - PCSC_ConvertCardStateToWinSCard
        - PCSC_ConvertProtocolsToWinSCard
        - PCSC_GetCardContextFromHandle
        - PCSC_GetCardHandleData
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCard_LogError
        - PCSC_WaitForCardAccess
        - calloc
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2048,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2050,10'
          Dst:             PCSC_GetCardHandleData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2055,2'
          Dst:             PCSC_WaitForCardAccess
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2056,13'
          Dst:             PCSC_GetCardContextFromHandle
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2065,10'
          Dst:             PCSC_MapErrorCodeToWinSCard
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2103,13'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2116,10'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2135,3'
          Dst:             PCSC_AddMemoryBlock
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2144,17'
          Dst:             ConvertMszUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2154,4'
          Dst:             PCSC_AddMemoryBlock
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2160,4'
          Dst:             PCSC_AddMemoryBlock
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2168,15'
          Dst:             PCSC_ConvertCardStateToWinSCard
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2171,18'
          Dst:             PCSC_ConvertProtocolsToWinSCard
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2178,3'
          Dst:             winpr_int_assert
    - functionName:    PCSC_ConvertProtocolsToWinSCard
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_ReleaseCardAccess
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 632
      functionLinenumberEnd: 677
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          114
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - PCSC_GetCardContextData
        - PCSC_GetCardHandleData
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:639,14'
          Dst:             PCSC_GetCardContextData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:649,11'
          Dst:             PCSC_GetCardHandleData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:659,10'
          Dst:             PCSC_GetCardHandleData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:665,13'
          Dst:             PCSC_GetCardContextData
    - functionName:    PCSC_DisconnectCardHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ListDictionary_Remove
        - PCSC_GetCardContextData
        - WLog_Print_dbg_tag
        - init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:684,32'
          Dst:             PCSC_GetCardContextData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:685,6'
          Dst:             init
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:686,3'
          Dst:             ListDictionary_Remove
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:690,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PCSC_ConnectCardHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - ListDictionary_Add
        - PCSC_GetCardContextData
        - WLog_Print_dbg_tag
        - calloc
        - init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:700,7'
          Dst:             init
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:703,32'
          Dst:             PCSC_GetCardContextData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:707,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:711,47'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:718,7'
          Dst:             ListDictionary_Add
    - functionName:    PCSC_ConvertProtocolsFromWinSCard
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          55
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardConnect_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1817
      functionLinenumberEnd: 1860
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          136
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - PCSC_ConnectCardHandle
        - PCSC_ConvertProtocolsFromWinSCard
        - PCSC_ConvertProtocolsToWinSCard
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCard_LogError
        - PCSC_WaitForCardAccess
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1827,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1830,2'
          Dst:             PCSC_WaitForCardAccess
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1844,19'
          Dst:             PCSC_ConvertProtocolsFromWinSCard
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1851,11'
          Dst:             PCSC_ConnectCardHandle
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1852,24'
          Dst:             PCSC_ConvertProtocolsToWinSCard
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1856,3'
          Dst:             PCSC_WaitForCardAccess
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1859,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_SCardGetStatusChange_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1636
      functionLinenumberEnd: 1729
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          330
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCard_LogError
        - _stricmp
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1645,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1665,16'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1670,36'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1686,13'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1728,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    findCardByAtr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1134
      functionLinenumberEnd: 1142
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - memcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1137,7'
          Dst:             memcmp
    - functionName:    PCSC_SCardListReaders_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 934
      functionLinenumberEnd: 983
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          168
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - PCSC_AddMemoryBlock
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCard_LogError
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:942,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:958,16'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:971,5'
          Dst:             PCSC_AddMemoryBlock
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:982,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_UnlockCardContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 548
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - LeaveCriticalSection
        - PCSC_GetCardContextData
        - WLog_Print_dbg_tag
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:538,13'
          Dst:             PCSC_GetCardContextData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:542,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:546,2'
          Dst:             LeaveCriticalSection
    - functionName:    PCSC_SCardListReaderGroups_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 823
      functionLinenumberEnd: 871
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          162
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - PCSC_AddMemoryBlock
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCard_LogError
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:832,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:846,16'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:859,5'
          Dst:             PCSC_AddMemoryBlock
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:870,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_LockCardContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 532
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - EnterCriticalSection
        - PCSC_GetCardContextData
        - WLog_Print_dbg_tag
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:522,13'
          Dst:             PCSC_GetCardContextData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:526,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:530,2'
          Dst:             EnterCriticalSection
    - functionName:    PCSC_ReleaseCardContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 516
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ListDictionary_Take
        - cardContextFree
        - init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:511,6'
          Dst:             init
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:513,33'
          Dst:             ListDictionary_Take
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:514,3'
          Dst:             cardContextFree
    - functionName:    PCSC_SCardReleaseContext_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 781
      functionLinenumberEnd: 795
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCard_LogError
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:785,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:789,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:790,10'
          Dst:             PCSC_MapErrorCodeToWinSCard
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:794,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    pcsc_cache_item_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_EstablishCardContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          104
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - HashTable_New
        - HashTable_SetupForStringData
        - HashTable_ValueObject
        - InitializeCriticalSectionAndSpinCount
        - ListDictionary_Add
        - calloc
        - cardContextFree
        - init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:477,7'
          Dst:             init
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:480,52'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:487,7'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:490,20'
          Dst:             HashTable_New
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:493,7'
          Dst:             HashTable_SetupForStringData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:496,18'
          Dst:             HashTable_ValueObject
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:500,7'
          Dst:             ListDictionary_Add
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:505,2'
          Dst:             cardContextFree
    - functionName:    PCSC_SCardEstablishContext_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 753
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCard_LogError
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:758,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:762,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_SCardAudit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3287
      functionLinenumberEnd: 3291
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardListReadersWithDeviceInstanceIdW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3277
      functionLinenumberEnd: 3282
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardListReadersWithDeviceInstanceIdA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3264
      functionLinenumberEnd: 3269
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardGetReaderDeviceInstanceIdW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3251
      functionLinenumberEnd: 3256
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardGetReaderDeviceInstanceIdA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3238
      functionLinenumberEnd: 3243
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardGetDeviceTypeIdW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3225
      functionLinenumberEnd: 3230
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardGetDeviceTypeIdA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3213
      functionLinenumberEnd: 3219
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardGetReaderIconW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3201
      functionLinenumberEnd: 3207
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3205,2'
          Dst:             winpr_int_assert
    - functionName:    PCSC_SCardGetReaderIconA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3189
      functionLinenumberEnd: 3195
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3193,2'
          Dst:             winpr_int_assert
    - functionName:    PCSC_SCardWriteCacheW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3143
      functionLinenumberEnd: 3184
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          133
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - HashTable_Insert
        - HashTable_Remove
        - PCSC_GetCardContextData
        - card_id_and_name_w
        - pcsc_cache_item_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3145,27'
          Dst:             PCSC_GetCardContextData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3150,7'
          Dst:             card_id_and_name_w
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3172,2'
          Dst:             HashTable_Remove
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3173,18'
          Dst:             HashTable_Insert
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3178,3'
          Dst:             pcsc_cache_item_free
    - functionName:    PCSC_SCardWriteCacheA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3094
      functionLinenumberEnd: 3136
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          133
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - HashTable_Insert
        - HashTable_Remove
        - PCSC_GetCardContextData
        - calloc
        - card_id_and_name_a
        - pcsc_cache_item_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3096,27'
          Dst:             PCSC_GetCardContextData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3102,7'
          Dst:             card_id_and_name_a
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3113,15'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3124,2'
          Dst:             HashTable_Remove
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3125,18'
          Dst:             HashTable_Insert
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3130,3'
          Dst:             pcsc_cache_item_free
    - functionName:    PCSC_SCardReadCacheW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3041
      functionLinenumberEnd: 3087
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          158
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - HashTable_GetItemValue
        - PCSC_AddMemoryBlock
        - PCSC_GetCardContextData
        - calloc
        - card_id_and_name_w
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3043,27'
          Dst:             PCSC_GetCardContextData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3047,13'
          Dst:             card_id_and_name_w
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3049,9'
          Dst:             HashTable_GetItemValue
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3066,15'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3070,8'
          Dst:             PCSC_AddMemoryBlock
    - functionName:    PCSC_SCardReadCacheA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2987
      functionLinenumberEnd: 3034
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          169
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - HashTable_GetItemValue
        - PCSC_AddMemoryBlock
        - PCSC_GetCardContextData
        - calloc
        - card_id_and_name_a
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2989,27'
          Dst:             PCSC_GetCardContextData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2993,13'
          Dst:             card_id_and_name_a
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2995,10'
          Dst:             HashTable_GetItemValue
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3012,15'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3016,8'
          Dst:             PCSC_AddMemoryBlock
    - functionName:    PCSC_SCardDlgExtendedError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2946
      functionLinenumberEnd: 2948
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_GetOpenCardNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2940
      functionLinenumberEnd: 2942
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_GetOpenCardNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2934
      functionLinenumberEnd: 2936
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardUIDlgSelectCardW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2928
      functionLinenumberEnd: 2930
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardUIDlgSelectCardA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2921
      functionLinenumberEnd: 2924
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardSetAttrib
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2901
      functionLinenumberEnd: 2918
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          74
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - PCSC_GetCardHandleData
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCard_LogError
        - PCSC_WaitForCardAccess
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2908,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2910,10'
          Dst:             PCSC_GetCardHandleData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2915,2'
          Dst:             PCSC_WaitForCardAccess
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2917,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_SCardGetAttrib
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2718
      functionLinenumberEnd: 2897
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         157
      ICount:          619
      EdgeCount:       204
      CyclomaticComplexity: 49
      functionsReached:
        - PCSC_ConvertProtocolsToWinSCard
        - PCSC_GetCardContextFromHandle
        - PCSC_ReadDeviceSystemName
        - PCSC_SCardGetAttrib_FriendlyName
        - PCSC_SCardGetAttrib_Internal
        - strnlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2747,13'
          Dst:             PCSC_GetCardContextFromHandle
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2755,10'
          Dst:             PCSC_SCardGetAttrib_FriendlyName
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2758,11'
          Dst:             PCSC_SCardGetAttrib_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2780,19'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2781,6'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2808,25'
          Dst:             PCSC_ConvertProtocolsToWinSCard
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2852,13'
          Dst:             PCSC_ReadDeviceSystemName
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2856,13'
          Dst:             PCSC_ReadDeviceSystemName
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2896,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2896,9'
          Dst:             winpr_int_assert
    - functionName:    PCSC_SCardControl
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2394
      functionLinenumberEnd: 2457
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - size_t
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          198
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - PCSC_GetCardHandleData
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCard_LogError
        - PCSC_WaitForCardAccess
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2406,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2408,10'
          Dst:             PCSC_GetCardHandleData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2413,2'
          Dst:             PCSC_WaitForCardAccess
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2456,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_SCardGetTransmitCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2378
      functionLinenumberEnd: 2388
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PCSC_GetCardHandleData
        - PCSC_WaitForCardAccess
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2381,10'
          Dst:             PCSC_GetCardHandleData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2386,2'
          Dst:             PCSC_WaitForCardAccess
    - functionName:    PCSC_SCardTransmit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2256
      functionLinenumberEnd: 2374
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          326
      EdgeCount:       58
      CyclomaticComplexity: 17
      functionsReached:
        - PCSC_GetCardHandleData
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCard_LogError
        - PCSC_WaitForCardAccess
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2279,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2281,10'
          Dst:             PCSC_GetCardHandleData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2286,2'
          Dst:             PCSC_WaitForCardAccess
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2373,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_SCardStatusW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2247
      functionLinenumberEnd: 2250
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - PCSC_SCardStatus_Internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2249,9'
          Dst:             PCSC_SCardStatus_Internal
    - functionName:    PCSC_SCardStatusA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2237
      functionLinenumberEnd: 2240
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - PCSC_SCardStatus_Internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2239,9'
          Dst:             PCSC_SCardStatus_Internal
    - functionName:    PCSC_SCardState
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2192
      functionLinenumberEnd: 2231
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          136
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - PCSC_ConvertProtocolsToWinSCard
        - PCSC_GetCardContextFromHandle
        - PCSC_GetCardHandleData
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCardFreeMemory_Internal
        - PCSC_SCardStatus_Internal
        - PCSC_SCard_LogError
        - PCSC_WaitForCardAccess
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2206,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2208,10'
          Dst:             PCSC_GetCardHandleData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2213,2'
          Dst:             PCSC_WaitForCardAccess
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2214,13'
          Dst:             PCSC_GetCardContextFromHandle
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2220,11'
          Dst:             PCSC_SCardStatus_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2224,3'
          Dst:             PCSC_SCardFreeMemory_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2227,17'
          Dst:             PCSC_ConvertProtocolsToWinSCard
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2230,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_SCardCancelTransaction
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2020
      functionLinenumberEnd: 2022
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardEndTransaction
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1989
      functionLinenumberEnd: 2017
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          90
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - PCSC_GetCardContextData
        - PCSC_GetCardHandleData
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_ReleaseCardAccess
        - PCSC_SCard_LogError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1996,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1998,10'
          Dst:             PCSC_GetCardHandleData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2003,13'
          Dst:             PCSC_GetCardContextData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2008,2'
          Dst:             PCSC_ReleaseCardAccess
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:2016,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_SCardBeginTransaction
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1960
      functionLinenumberEnd: 1985
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          81
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - PCSC_GetCardContextData
        - PCSC_GetCardHandleData
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCard_LogError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1966,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1968,10'
          Dst:             PCSC_GetCardHandleData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1973,13'
          Dst:             PCSC_GetCardContextData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1984,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_SCardDisconnect
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1940
      functionLinenumberEnd: 1957
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - PCSC_DisconnectCardHandle
        - PCSC_GetCardHandleData
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_ReleaseCardAccess
        - PCSC_SCard_LogError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1945,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1951,29'
          Dst:             PCSC_GetCardHandleData
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1952,3'
          Dst:             PCSC_DisconnectCardHandle
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1955,2'
          Dst:             PCSC_ReleaseCardAccess
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1956,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_SCardReconnect
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1919
      functionLinenumberEnd: 1937
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          84
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PCSC_ConvertProtocolsFromWinSCard
        - PCSC_ConvertProtocolsToWinSCard
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCard_LogError
        - PCSC_WaitForCardAccess
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1927,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1930,2'
          Dst:             PCSC_WaitForCardAccess
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1931,42'
          Dst:             PCSC_ConvertProtocolsFromWinSCard
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1935,23'
          Dst:             PCSC_ConvertProtocolsToWinSCard
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1936,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_SCardConnectW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1887
      functionLinenumberEnd: 1913
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - PCSC_LockCardContext
        - PCSC_SCardConnect_Internal
        - PCSC_UnlockCardContext
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1891,7'
          Dst:             PCSC_LockCardContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1896,15'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1904,11'
          Dst:             PCSC_SCardConnect_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1909,7'
          Dst:             PCSC_UnlockCardContext
    - functionName:    PCSC_SCardConnectA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1867
      functionLinenumberEnd: 1880
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          61
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - PCSC_LockCardContext
        - PCSC_SCardConnect_Internal
        - PCSC_UnlockCardContext
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1870,7'
          Dst:             PCSC_LockCardContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1873,11'
          Dst:             PCSC_SCardConnect_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1876,7'
          Dst:             PCSC_UnlockCardContext
    - functionName:    PCSC_SCardCancel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1804
      functionLinenumberEnd: 1812
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCard_LogError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1808,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1811,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_SCardGetStatusChangeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1751
      functionLinenumberEnd: 1801
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          236
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - PCSC_LockCardContext
        - PCSC_SCardGetStatusChange_Internal
        - PCSC_SCard_LogError
        - PCSC_UnlockCardContext
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1756,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1758,7'
          Dst:             PCSC_LockCardContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1761,33'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1765,8'
          Dst:             PCSC_UnlockCardContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1775,19'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1783,11'
          Dst:             PCSC_SCardGetStatusChange_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1797,7'
          Dst:             PCSC_UnlockCardContext
    - functionName:    PCSC_SCardGetStatusChangeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1734
      functionLinenumberEnd: 1746
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - PCSC_LockCardContext
        - PCSC_SCardGetStatusChange_Internal
        - PCSC_UnlockCardContext
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1737,7'
          Dst:             PCSC_LockCardContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1740,11'
          Dst:             PCSC_SCardGetStatusChange_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1742,7'
          Dst:             PCSC_UnlockCardContext
    - functionName:    PCSC_SCardLocateCardsByATRW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1625
      functionLinenumberEnd: 1631
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardLocateCardsByATRA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1613
      functionLinenumberEnd: 1619
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardLocateCardsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1602
      functionLinenumberEnd: 1607
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardLocateCardsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1590
      functionLinenumberEnd: 1595
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardReleaseStartedEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1573
      functionLinenumberEnd: 1584
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          37
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - CloseHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1580,10'
          Dst:             CloseHandle
    - functionName:    PCSC_SCardAccessStartedEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1542
      functionLinenumberEnd: 1570
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          78
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - CloseHandle
        - CreateEventA
        - PCSC_SCardEstablishContext
        - PCSC_SCardReleaseContext
        - SetEvent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1546,11'
          Dst:             PCSC_SCardEstablishContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1551,11'
          Dst:             PCSC_SCardReleaseContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1558,26'
          Dst:             CreateEventA
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1561,8'
          Dst:             SetEvent
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1563,10'
          Dst:             CloseHandle
    - functionName:    PCSC_SCardEstablishContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 768
      functionLinenumberEnd: 776
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PCSC_EstablishCardContext
        - PCSC_SCardEstablishContext_Internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:771,11'
          Dst:             PCSC_SCardEstablishContext_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:774,3'
          Dst:             PCSC_EstablishCardContext
    - functionName:    PCSC_SCardReleaseContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 799
      functionLinenumberEnd: 805
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - PCSC_ReleaseCardContext
        - PCSC_SCardReleaseContext_Internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:802,11'
          Dst:             PCSC_SCardReleaseContext_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:803,2'
          Dst:             PCSC_ReleaseCardContext
    - functionName:    PCSC_SCardFreeMemory
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1520
      functionLinenumberEnd: 1538
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          70
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - PCSC_LockCardContext
        - PCSC_SCardFreeMemory_Internal
        - PCSC_UnlockCardContext
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1525,8'
          Dst:             PCSC_LockCardContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1529,11'
          Dst:             PCSC_SCardFreeMemory_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1533,8'
          Dst:             PCSC_UnlockCardContext
    - functionName:    PCSC_SCardForgetCardTypeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1496
      functionLinenumberEnd: 1499
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardForgetCardTypeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1488
      functionLinenumberEnd: 1491
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardSetCardTypeProviderNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1478
      functionLinenumberEnd: 1483
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardSetCardTypeProviderNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1466
      functionLinenumberEnd: 1471
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardIntroduceCardTypeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1450
      functionLinenumberEnd: 1459
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardIntroduceCardTypeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1434
      functionLinenumberEnd: 1443
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardRemoveReaderFromGroupW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1423
      functionLinenumberEnd: 1427
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardRemoveReaderFromGroupA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1413
      functionLinenumberEnd: 1417
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardAddReaderToGroupW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1403
      functionLinenumberEnd: 1407
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardAddReaderToGroupA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1393
      functionLinenumberEnd: 1397
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardForgetReaderW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1384
      functionLinenumberEnd: 1387
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardForgetReaderA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1376
      functionLinenumberEnd: 1379
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardIntroduceReaderW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1367
      functionLinenumberEnd: 1371
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardIntroduceReaderA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1361
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardForgetReaderGroupW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1348
      functionLinenumberEnd: 1351
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardForgetReaderGroupA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1340
      functionLinenumberEnd: 1343
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardIntroduceReaderGroupW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1332
      functionLinenumberEnd: 1335
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardIntroduceReaderGroupA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1327
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardGetCardTypeProviderNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1313
      functionLinenumberEnd: 1319
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardGetCardTypeProviderNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1300
      functionLinenumberEnd: 1306
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardGetProviderIdW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1289
      functionLinenumberEnd: 1293
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardGetProviderIdA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1279
      functionLinenumberEnd: 1283
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardListInterfacesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1268
      functionLinenumberEnd: 1273
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardListInterfacesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1256
      functionLinenumberEnd: 1261
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PCSC_SCardListCardsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1201
      functionLinenumberEnd: 1250
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          180
      EdgeCount:       41
      CyclomaticComplexity: 13
      functionsReached:
        - ConvertUtf8ToWChar
        - calloc
        - findCardByAtr
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1215,13'
          Dst:             findCardByAtr
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1217,16'
          Dst:             strlen
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1222,12'
          Dst:             calloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1241,19'
          Dst:             strlen
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1242,7'
          Dst:             ConvertUtf8ToWChar
    - functionName:    PCSC_SCardListCardsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1148
      functionLinenumberEnd: 1196
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          172
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - findCardByAtr
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1162,13'
          Dst:             findCardByAtr
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1164,16'
          Dst:             strlen
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1188,19'
          Dst:             strlen
    - functionName:    PCSC_SCardListReadersW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1031
      functionLinenumberEnd: 1106
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          204
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - ConvertMszUtf8NToWCharAlloc
        - ConvertWCharToUtf8Alloc
        - PCSC_AddMemoryBlock
        - PCSC_LockCardContext
        - PCSC_SCardEstablishContext
        - PCSC_SCardFreeMemory_Internal
        - PCSC_SCardListReaders_Internal
        - PCSC_SCardReleaseContext
        - PCSC_SCard_LogError
        - PCSC_UnlockCardContext
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1038,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1042,12'
          Dst:             PCSC_SCardEstablishContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1051,7'
          Dst:             PCSC_LockCardContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1059,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1074,11'
          Dst:             PCSC_SCardListReaders_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1079,16'
          Dst:             ConvertMszUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1080,3'
          Dst:             PCSC_SCardFreeMemory_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1090,3'
          Dst:             PCSC_AddMemoryBlock
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1094,7'
          Dst:             PCSC_UnlockCardContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1100,19'
          Dst:             PCSC_SCardReleaseContext
    - functionName:    PCSC_SCardListReadersA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 988
      functionLinenumberEnd: 1026
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          120
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - PCSC_LockCardContext
        - PCSC_SCardEstablishContext
        - PCSC_SCardListReaders_Internal
        - PCSC_SCardReleaseContext
        - PCSC_SCard_LogError
        - PCSC_UnlockCardContext
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:993,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:997,12'
          Dst:             PCSC_SCardEstablishContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1006,7'
          Dst:             PCSC_LockCardContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1012,11'
          Dst:             PCSC_SCardListReaders_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1014,7'
          Dst:             PCSC_UnlockCardContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:1020,19'
          Dst:             PCSC_SCardReleaseContext
    - functionName:    PCSC_SCardListReaderGroupsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 896
      functionLinenumberEnd: 929
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertMszUtf8NToWCharAlloc
        - PCSC_AddMemoryBlock
        - PCSC_LockCardContext
        - PCSC_SCardFreeMemory_Internal
        - PCSC_SCardListReaderGroups_Internal
        - PCSC_SCard_LogError
        - PCSC_UnlockCardContext
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:902,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:904,7'
          Dst:             PCSC_LockCardContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:907,11'
          Dst:             PCSC_SCardListReaderGroups_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:912,16'
          Dst:             ConvertMszUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:920,3'
          Dst:             PCSC_AddMemoryBlock
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:921,3'
          Dst:             PCSC_SCardFreeMemory_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:925,7'
          Dst:             PCSC_UnlockCardContext
    - functionName:    PCSC_SCardListReaderGroupsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 876
      functionLinenumberEnd: 891
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - PCSC_LockCardContext
        - PCSC_SCardListReaderGroups_Internal
        - PCSC_SCard_LogError
        - PCSC_UnlockCardContext
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:880,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:882,7'
          Dst:             PCSC_LockCardContext
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:885,11'
          Dst:             PCSC_SCardListReaderGroups_Internal
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:887,7'
          Dst:             PCSC_UnlockCardContext
    - functionName:    PCSC_SCardIsValidContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 810
      functionLinenumberEnd: 818
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PCSC_MapErrorCodeToWinSCard
        - PCSC_SCard_LogError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:814,10'
          Dst:             PCSC_SCard_LogError
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:817,9'
          Dst:             PCSC_MapErrorCodeToWinSCard
    - functionName:    PCSC_InitializeSCardApi
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3513
      functionLinenumberEnd: 3611
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         48
      ICount:          250
      EdgeCount:       51
      CyclomaticComplexity: 5
      functionsReached:
        - GetProcAddress
        - LoadLibraryA
        - SetEnvironmentVariableA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3515,2'
          Dst:             SetEnvironmentVariableA
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3524,17'
          Dst:             LoadLibraryA
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3527,18'
          Dst:             LoadLibraryA
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3565,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3566,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3567,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3568,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3569,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3570,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3571,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3572,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3573,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3574,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3587,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3589,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3590,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3591,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3592,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3593,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3594,2'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/smartcard/smartcard_pcsc.c:3597,2'
          Dst:             GetProcAddress
    - functionName:    PCSC_GetSCardApiFunctionTable
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/smartcard/smartcard_pcsc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3508
      functionLinenumberEnd: 3509
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    compare_byte_relaxed
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1244
      functionLinenumberEnd: 1260
      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: 1118
      functionLinenumberEnd: 1155
      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:1119,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1120,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1154,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: 687
      functionLinenumberEnd: 695
      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:688,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:689,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:694,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_convert_to_webp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 824
      functionLinenumberEnd: 832
      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:825,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:826,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:831,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_image_format_extension
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1347
      functionLinenumberEnd: 1361
      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:1348,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    winpr_image_format_mime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1330
      functionLinenumberEnd: 1344
      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:1331,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    compare_pixel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1263
      functionLinenumberEnd: 1279
      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:1264,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1265,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1267,7'
          Dst:             compare_byte_relaxed
        - 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:1275,8'
          Dst:             compare_byte_relaxed
    - functionName:    convert
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1203
      functionLinenumberEnd: 1241
      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:1204,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1205,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1212,15'
          Dst:             calloc
    - functionName:    winpr_image_equal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1282
      functionLinenumberEnd: 1327
      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:1304,16'
          Dst:             convert
        - Src:             'winpr/libwinpr/utils/image.c:1305,16'
          Dst:             convert
        - Src:             'winpr/libwinpr/utils/image.c:1319,10'
          Dst:             compare_pixel
    - functionName:    winpr_image_format_is_supported
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1183
      functionLinenumberEnd: 1200
      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:1184,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    winpr_image_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 681
      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: 663
      functionLinenumberEnd: 670
      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:664,27'
          Dst:             calloc
    - functionName:    winpr_convert_from_png
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1164
      functionLinenumberEnd: 1178
      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:1177,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_convert_from_jpeg
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 760
      functionLinenumberEnd: 769
      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:761,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:762,2'
          Dst:             winpr_int_assert
        - 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:768,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_convert_from_webp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 867
      functionLinenumberEnd: 880
      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:868,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:869,2'
          Dst:             winpr_int_assert
        - 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:879,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_image_bitmap_read_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 569
      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_CheckAndLogRequiredCapacityEx
        - 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:442,15'
          Dst:             Stream_StaticConstInit
        - Src:             'winpr/libwinpr/utils/image.c:448,7'
          Dst:             readBitmapFileHeader
        - Src:             'winpr/libwinpr/utils/image.c:448,40'
          Dst:             readBitmapInfoHeader
        - Src:             'winpr/libwinpr/utils/image.c:453,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:460,22'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/image.c:464,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:470,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/utils/image.c:475,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:494,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:501,26'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:501,26'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:503,21'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:503,21'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:510,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:541,7'
          Dst:             Stream_Read
        - Src:             'winpr/libwinpr/utils/image.c:551,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_CheckAndLogRequiredCapacityWLogEx
        - 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_CheckAndLogRequiredCapacityWLogEx
    - functionName:    readBitmapInfoHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         145
      ICount:          636
      EdgeCount:       169
      CyclomaticComplexity: 26
      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:198,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:204,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:208,21'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/image.c:211,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:216,9'
          Dst:             Stream_SafeSeekEx
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,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: 604
      functionLinenumberEnd: 660
      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:616,12'
          Dst:             winpr_image_bitmap_read_buffer
        - Src:             'winpr/libwinpr/utils/image.c:622,22'
          Dst:             winpr_convert_from_webp
        - Src:             'winpr/libwinpr/utils/image.c:636,22'
          Dst:             winpr_convert_from_jpeg
        - Src:             'winpr/libwinpr/utils/image.c:649,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: 572
      functionLinenumberEnd: 601
      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:575,13'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/image.c:578,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:582,8'
          Dst:             fseek
        - Src:             'winpr/libwinpr/utils/image.c:583,14'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/utils/image.c:584,8'
          Dst:             fseek
        - Src:             'winpr/libwinpr/utils/image.c:591,15'
          Dst:             fread
        - Src:             'winpr/libwinpr/utils/image.c:594,14'
          Dst:             winpr_image_read_buffer
        - Src:             'winpr/libwinpr/utils/image.c:599,8'
          Dst:             fclose
    - functionName:    write_and_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 415
      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:403,14'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/image.c:408,21'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/utils/image.c:409,10'
          Dst:             fclose
    - functionName:    winpr_image_write_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1364
      functionLinenumberEnd: 1408
      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:1366,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1365,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1372,17'
          Dst:             winpr_bitmap_write_buffer
        - Src:             'winpr/libwinpr/utils/image.c:1381,17'
          Dst:             winpr_convert_to_webp
        - Src:             'winpr/libwinpr/utils/image.c:1390,17'
          Dst:             winpr_convert_to_jpeg
        - Src:             'winpr/libwinpr/utils/image.c:1399,17'
          Dst:             winpr_convert_to_png
    - functionName:    winpr_bitmap_write_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 344
      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:300,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:310,15'
          Dst:             Stream_New
        - Src:             'winpr/libwinpr/utils/image.c:315,21'
          Dst:             winpr_bitmap_construct_header
        - Src:             'winpr/libwinpr/utils/image.c:318,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:320,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/image.c:322,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:329,3'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/image.c:330,3'
          Dst:             Stream_Zero
        - Src:             'winpr/libwinpr/utils/image.c:333,11'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/utils/image.c:335,22'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/image.c:341,2'
          Dst:             Stream_Free
    - functionName:    winpr_bitmap_construct_header
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 288
      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:256,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:233,15'
          Dst:             Stream_New
        - Src:             'winpr/libwinpr/utils/image.c:274,7'
          Dst:             writeBitmapFileHeader
        - Src:             'winpr/libwinpr/utils/image.c:277,7'
          Dst:             writeBitmapInfoHeader
        - Src:             'winpr/libwinpr/utils/image.c:280,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:283,2'
          Dst:             Stream_Zero
        - Src:             'winpr/libwinpr/utils/image.c:284,11'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/utils/image.c:286,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: 1264
      functionLinenumberEnd: 1266
      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:1265,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: 425
      functionLinenumberEnd: 433
      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:426,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:429,15'
          Dst:             winpr_image_write_buffer
        - Src:             'winpr/libwinpr/utils/image.c:432,9'
          Dst:             write_and_free
    - functionName:    winpr_image_write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 421
      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:420,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:421,37'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:421,37'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:421,9'
          Dst:             winpr_image_write_ex
    - functionName:    winpr_bitmap_write_ex
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 393
      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:371,14'
          Dst:             winpr_bitmap_write_buffer
        - Src:             'winpr/libwinpr/utils/image.c:377,8'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/image.c:380,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:384,7'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/utils/image.c:391,9'
          Dst:             fclose
    - functionName:    winpr_bitmap_write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 349
      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:349,9'
          Dst:             winpr_bitmap_write_ex
    - functionName:    ntlm_av_pair_valid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 313
      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:296,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    ntlm_md5_update_uint32_be
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 449
      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:449,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: 204
      functionLinenumberEnd: 213
      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:209,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: 317
      functionLinenumberEnd: 336
      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:321,7'
          Dst:             ntlm_av_pair_check
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:324,7'
          Dst:             ntlm_av_pair_get_id
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:327,7'
          Dst:             ntlm_av_pair_get_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:330,7'
          Dst:             ntlm_av_pair_valid
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:333,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:334,53'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:334,53'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:335,26'
          Dst:             ntlm_av_pair_get_value_pointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:334,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: 216
      functionLinenumberEnd: 217
      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:217,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: 196
      functionLinenumberEnd: 201
      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:197,2'
          Dst:             winpr_int_assert
    - functionName:    ntlm_av_pair_add
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 292
      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:276,12'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:282,2'
          Dst:             ntlm_av_pair_set_id
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:283,2'
          Dst:             ntlm_av_pair_set_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:286,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:287,3'
          Dst:             ntlm_av_pair_get_value_pointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:290,12'
          Dst:             ntlm_av_pair_next
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:291,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: 241
      functionLinenumberEnd: 267
      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:246,7'
          Dst:             ntlm_av_pair_check
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:249,20'
          Dst:             ntlm_av_pair_get_id
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:259,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: 221
      functionLinenumberEnd: 237
      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:226,7'
          Dst:             ntlm_av_pair_check
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:229,7'
          Dst:             ntlm_av_pair_get_next_offset
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:234,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: 453
      functionLinenumberEnd: 499
      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:459,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:467,14'
          Dst:             winpr_Digest_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:470,7'
          Dst:             winpr_Digest_Init
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:476,7'
          Dst:             ntlm_md5_update_uint32_be
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:479,7'
          Dst:             ntlm_md5_update_uint32_be
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:482,7'
          Dst:             ntlm_md5_update_uint32_be
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:485,7'
          Dst:             ntlm_md5_update_uint32_be
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:488,7'
          Dst:             ntlm_md5_update_uint32_be
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:491,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:494,7'
          Dst:             winpr_Digest_Final
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:498,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: 502
      functionLinenumberEnd: 517
      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:503,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:512,2'
          Dst:             winpr_Data_Write_UINT32
        - 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
    - functionName:    ntlm_construct_authenticate_target_info
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 797
      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:587,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:592,19'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:594,21'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:596,20'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:598,22'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:600,18'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:602,16'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:608,8'
          Dst:             ntlm_av_pair_get_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:617,8'
          Dst:             ntlm_av_pair_get_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:626,8'
          Dst:             ntlm_av_pair_get_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:635,8'
          Dst:             ntlm_av_pair_get_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:644,8'
          Dst:             ntlm_av_pair_get_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:662,3'
          Dst:             ntlm_compute_single_host_data
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:679,3'
          Dst:             ntlm_compute_channel_bindings
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:681,8'
          Dst:             ntlm_is_unicode_string_empty
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:689,17'
          Dst:             ntlm_av_pair_list_size
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:694,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:694,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:693,8'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:701,7'
          Dst:             ntlm_av_pair_list_init
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:706,8'
          Dst:             ntlm_av_pair_add_copy
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:713,8'
          Dst:             ntlm_av_pair_add_copy
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:720,8'
          Dst:             ntlm_av_pair_add_copy
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:727,8'
          Dst:             ntlm_av_pair_add_copy
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:734,8'
          Dst:             ntlm_av_pair_add_copy
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:741,8'
          Dst:             ntlm_av_pair_add_copy
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:749,3'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:751,8'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:758,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:759,8'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:767,8'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:771,8'
          Dst:             ntlm_is_unicode_string_empty
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:773,9'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:784,7'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:787,8'
          Dst:             ntlm_av_pair_get_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:795,2'
          Dst:             sspi_SecBufferFree
    - functionName:    ntlm_is_unicode_string_empty
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 412
      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:406,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: 190
      functionLinenumberEnd: 192
      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: 520
      functionLinenumberEnd: 563
      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:523,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:529,25'
          Dst:             ntlm_av_pair_list_size
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:531,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:531,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:530,8'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:538,7'
          Dst:             ntlm_av_pair_list_init
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:541,7'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:545,7'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:549,7'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:553,7'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:557,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: 384
      functionLinenumberEnd: 402
      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:390,17'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:399,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:399,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:400,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:400,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: 369
      functionLinenumberEnd: 381
      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:375,17'
          Dst:             wcsndup
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:378,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:378,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:379,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:379,24'
          Dst:             winpr_int_assert
    - functionName:    ntlm_clone_unicode_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 366
      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:359,17'
          Dst:             calloc
    - functionName:    ntlm_free_unicode_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 348
      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: 1324
      functionLinenumberEnd: 1326
      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:1325,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: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,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: 1264
      functionLinenumberEnd: 1266
      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:1265,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:    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:    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_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:    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:    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:    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: 1342
      functionLinenumberEnd: 1345
      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:1343,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1344,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1324
      functionLinenumberEnd: 1326
      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:1325,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:    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
...
